CROSSBOW(1)              General Commands Manual (urm)             CROSSBOW(1)

NAME
    crossbow ? The minimalist feed aggregator

SYNOPSIS
    crossbow [-cDdqVv] [-i] identifier
    crossbow -h

DESCRIPTION
    crossbow is simple RSS/Atom feed aggregator, designed to be invoked
    periodically via cron(8).

    The feeds to be monitored are specified in the crossbow.conf(5)
    configuration file.  Each feed must declare a URL that is checked for new
    entries upon invocation, and is associated with a handler that determines
    how entries are processed.

    The available handlers are:

    print  Prints a textual representation of each new entry to stdout(3).

           This handler is intended as a way to turn entries into email,
           since the output of a cron(8) job is normally mailed to the owner
           of the crontab(5).

    exec   Handle new entries by means of a subprocess.

           This handler allows to execute a specialized data scraper for each
           processed entry.  The subprocess can be parametrised with various
           entry properties, such as the title and the link to the content.

    pipe   Like exec, but the content is made available to the subprocess by
           means of a pipe(2), so it can be handled regardless of the size.

           This handler allows to process feeds that deliver a copious amount
           of content.

    After each entry has been processed according to the corresponding feed
    handler, the set of their identifiers is persisted on the filesystem, so
    that they are marked as seen for the next invocation.  The entries that
    could not be handled successfully (i.e. the subprocess failed) will be
    processed again on the next round.

OPTIONS
    -c      Catch up, marking new items as seen without processing them.  The
            effect is the same as -D, but feeds configured with the print
            handler are silenced too.

    -D      Do not execute subprocesses for feeds configured with the exec or
            pipe handlers.

    -d      Do not mark processed items as seen.

    -h      Print help text and exit.

    -i identifier
            Only fetch the feed identified by identifier.  The identifier can
            be equivalently supplied as first argument.  This flag is useful
            to escape a feed name that starts with a hyphen.

    -q      Quiet mode.  Set the verbosity level to zero, suppressing
            notifications except for warnings and fatal errors.

    -V      Print version and exit.

    -v      Increase verbosity level.  This option can be supplied multiple
            times for additional verbosity.

FILES
    ~/.crossbow.conf
          The configuration file.  See crossbow.conf(5).

    ${XDG_CONFIG_HOME}/crossbow.conf
          Alternative configuration file, honored if ~/.crossbow.conf is not
          found.

    ~/.config/crossbow.conf
          Alternative configuration file, honored if none of the above is
          found.

    ~/.crossbow
          Path for the persistence directory, that is where crossbow will
          store the set of seen entry identifiers for each feed.  The
          directory is created if it does not exist.  A different path for
          the persistence directory can be specified in the configuration
          file.  See crossbow.conf(5)

EXIT STATUS
    crossbow exits with 0 on success, and with 1 in case of failed feed
    retrieval or failed entry processing.

EXAMPLES
    See crossbow-cookbook(7).

SEE ALSO
    crossbow-format(5), crossbow.conf(5), crossbow-cookbook(7), cron(8)

AUTHORS
    Giovanni Simoni <[email protected]>

BUGS
    Depending on the installed version of libcurl, a file descriptor might
    leak to the subprocesses (FD_CLOEXEC bit not set).

                             September 14, 2021