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)