filechan - file-writing backend for InterNetNews


SYNOPSIS

       filechan  [  -d directory ] [ -f fields ] [ -m mapfile ] [
       -p pidfile ]


DESCRIPTION

       Filechan reads lines from standard input and  copies  cer­
       tain  fields in each line into files named by other fields
       within the line.  Filechan is intended  to  be  called  by
       innd(8) as a channel feed.  (It is not a full exploder and
       does not accept commands; see newsfeeds(5) for a  descrip­
       tion  of  the  difference  and buffchan(8) for an exploder
       program.)

       Filechan input is interpreted as a  set  of  lines.   Each
       line  contains  a fixed number of initial fields, followed
       by a variable number of filename fields.  All fields in  a
       line  are  separated by whitespace.  The default number of
       initial fields is one.

       For each  line  of  input,  filechan  writes  the  initial
       fields, separated by whitespace and followed by a newline,
       to each of the files named in the filename  fields.   When
       writing  to  a  file, filechan opens it in append mode and
       tries to lock it and change the ownership to the user  and
       group who owns the directory where the file is being writ­
       ten.


OPTIONS

       -f     The ``-f'' flag may be used to specify a  different
              number of initial fields.

       -d     By  default,  filechan  writes  its output into the
              directory <pathoutgoing in inn.conf>.   The  ``-d''
              flag may be used to specify a directory the program
              should change to before starting.

       -p     If the ``-p'' flag is used, the program will  write
              a  line  containing its process ID (in text) to the
              specified file.

       If filechan is invoked with ``-f 2'' and given the follow­
       ing input:
              news/software/b/132 <1643@munnari.oz.au> foo uunet
              news/software/b/133 <102060@litchi.foo.com> uunet munnari
              comp/sources/unix/2002 <999@news.foo.com> foo uunet munnari

       Then the file foo will have these lines:
              news/software/b/132 <1643@munnari.oz.au>
              comp/sources/unix/2002 <999@news.foo.com>

       the file munnari will have these lines:

              comp/sources/unix/2002 <999@news.foo.com>

       and the file uunet will have these lines:
              news/software/b/132 <1643@munnari.oz.au>
              news/software/b/133 <102060@litchi.foo.com>
              comp/sources/unix/2002 <999@news.foo.com>

       Because  the  time  window in which a file is open is very
       small, complicated flushing and locking protocols are  not
       needed;  a  mv(1)  followed  by a sleep(1) for a couple of
       seconds is sufficient.

       -m     A map file may be specified  by  using  the  ``-m''
              flag.  Blank lines and lines starting with a number
              sign (``#'') are ignored.  All other  lines  should
              have  two  host  names  separated  by a colon.  The
              first field is the name  that  may  appear  in  the
              input stream; the second field names the file to be
              used when the name in the first field appears.  For
              example,  the following map file may be used to map
              the short names above to the full domain names:
              # This is a comment
              uunet:news.uu.net
              foo:foo.com
              munnari:munnari.oz.au


HISTORY

       Written by Robert Elz <kre@munnari.oz.au>, flags added  by
       Rich  $alz  <rsalz@uunet.uu.net>.   This  is revision 1.6,
       dated 1998/04/09.


SEE ALSO

       buffchan(8), inn.conf(5), innd(8), newsfeeds(5).


Man(1) output converted with man2html