glenda.party
term% ls -F
term% cat index.txt
PIPEFILE(1)                 General Commands Manual                PIPEFILE(1)

NAME
       pipefile - attach filter to file in name space

SYNOPSIS
       pipefile [ -d ] [ -r command ] [ -w command ] file

DESCRIPTION
       Pipefile  uses bind(2) to attach a pair of pipes to file, using them to
       interpose filter commands between the true file and the simulated  file
       that  subsequently  appears  in the name space.  Option -r interposes a
       filter that will affect the data delivered to programs that  read  from
       file;  -w interposes a filter that will affect the data written by pro‐
       grams to file.  At least one command must be specified;  pipefile  will
       insert a cat(1) process in the other direction.

       After  pipefile  has been run, the filters are established for programs
       that subsequently open the file; programs already using  the  file  are
       unaffected.

       Pipefile opens the file twice, once for each direction.  If the file is
       a  single-use  device,  such  as /dev/mouse, use the -d flag to specify
       that the file is to be opened once, in ORDWR mode.

EXAMPLES
       Simulate an old terminal:

              % pipefile -w 'tr a-z A-Z' /dev/cons
              % rc -i </dev/cons >/dev/cons >[2=1]
              % echo hello
              HELLO
              %

       Really simulate an old terminal:

              % pipefile -r 'tr A-Z a-z' -w 'tr a-z A-Z' /dev/cons
              % rc -i </dev/cons >/dev/cons >[2=1]
              % DATE
              THU OCT 12 10:13:45 EDT 2000
              %

SOURCE
       /sys/src/cmd/pipefile.c

SEE ALSO
       mouse(8)

BUGS
       The I/O model of pipefile is peculiar; it doesn't work  well  on  plain
       files.   It  is really intended for use with continuous devices such as
       /dev/cons and /dev/mouse.  Pipefile should be rewritten to be  a  user-
       level file system.

       If  the  program  using  the file managed by pipefile exits, the filter
       will see EOF and exit, and the file will be  unusable  until  the  name
       space is repaired.

                                                                   PIPEFILE(1)