tadd plumbing files. - plan9port - [fork] Plan 9 from user space
git clone git://src.adamsgaard.dk/plan9port
Log
Files
Refs
README
LICENSE
---
commit e70f30508317d83b3f65704229c198aba2b10730
parent 1379cecf675b52e268cf913699301b027ec7f816
Author: rsc 
Date:   Sun, 23 Nov 2003 18:30:04 +0000

add plumbing files.

Diffstat:
  A plumb/basic                         |     105 +++++++++++++++++++++++++++++++
  A plumb/fileaddr                      |       3 +++

2 files changed, 108 insertions(+), 0 deletions(-)
---
diff --git a/plumb/basic b/plumb/basic
t@@ -0,0 +1,105 @@
+# these are generally in order from most specific to least,
+# since first rule that fires wins.
+
+include fileaddr
+
+# declarations of ports without rules
+plumb to seemail
+plumb to showmail
+
+# cheap http/gif,jpeg,ps,pdf renderer
+type is text
+data matches '(https?|ftp|file|gopher|mailto|news|nntp|telnet|wais|prospero)://[a-zA-Z0-9_@\-]+([.:][a-zA-Z0-9_@\-]+)*/?[a-zA-Z0-9_?,%#~&/\-+=]+([:.][a-zA-Z0-9_?,%#~&/\-+=]+)*\.(jpe?g|JPE?G|gif|GIF|ps|PS|pdf|PDF)'
+plumb start rc -c 'hget '$0' | page -w'
+
+# doc and rtf files go to wdoc2txt
+type is text
+data matches '[a-zA-Z¡-￿0-9_\-./]+'
+data matches '([a-zA-Z¡-￿0-9_\-./]+)\.(doc|rtf)'
+arg isfile        $0
+plumb to msword
+plumb start wdoc2txt $file
+
+# start rule for microsoft word documents without .doc suffix
+type is text
+dst is msword
+plumb to msword
+plumb start wdoc2txt $file
+
+# email addresses get a new mail window
+type is text
+data matches '[a-zA-Z0-9_+.\-]+@[a-zA-Z0-9_+.\-]*'
+plumb to sendmail
+plumb start window rc -c '''echo % mail '''$0'; mail '$0
+
+# image files go to page
+type is text
+data matches '[a-zA-Z¡-￿0-9_\-./]+'
+data matches '([a-zA-Z¡-￿0-9_\-./]+)\.(jpe?g|JPE?G|gif|GIF|tiff?|TIFF?|ppm|bit)'
+arg isfile        $0
+plumb to image
+plumb client page -wi
+
+# postscript/pdf/dvi go to page but not over the a plumb port
+# the port is here for reference but is unused
+type is text
+data matches '[a-zA-Z¡-￿0-9_\-./]+'
+data matches '([a-zA-Z¡-￿0-9_\-./]+)\.(ps|PS|eps|EPS|pdf|PDF|dvi|DVI)'
+arg isfile        $0
+plumb to postscript
+plumb start page -w $file
+
+# existing files, possibly tagged by line number, go to editor
+type is text
+data matches '([.a-zA-Z¡-￿0-9_/\-]*[a-zA-Z¡-￿0-9_/\-])('$addr')?'
+arg isfile        $1
+data set        $file
+attr add        addr=$3
+plumb to edit
+plumb start /usr/local/plan9/bin/B $file
+#plumb client window $editor
+
+# .h files are looked up in /sys/include and passed to edit
+type is text
+data matches '([a-zA-Z¡-￿0-9]+\.h)('$addr')?'
+arg isfile        /sys/include/$1
+data set        $file
+attr add        addr=$3
+plumb to edit
+plumb client window $editor
+
+# .m files are looked up in /sys/module and passed to edit
+type is text
+data matches '([a-zA-Z¡-￿0-9]+\.m)('$addr')?'
+arg isfile        /sys/module/$1
+data set        $file
+attr add        addr=$3
+plumb to edit
+plumb client window $editor
+
+# faces -> new mail window for message
+type        is        text
+data        matches        '[a-zA-Z¡-￿0-9_\-./]+'
+data        matches        '/mail/fs/[a-zA-Z¡-￿0-9/]+/[0-9]+'
+plumb        to        showmail
+plumb        start        window -r 4 120 750 600 upas/nedmail -s $0
+
+# man index entries are synthesized
+type is text
+data matches '([a-zA-Z¡-￿0-9_\-./]+)\(([1-8])\)'
+plumb start rc -c 'man '$2' '$1' >[2=1] | plumb -i -d edit -a ''action=showdata filename=/man/'$1'('$2')'''
+
+# start rule for images without known suffixes
+dst is image
+plumb to image
+plumb client page -wi
+
+# start rule for postscript without known suffixes
+dst is postscript
+arg isfile $data
+plumb start page -w $data
+
+type        is        text
+data        matches        'Local (.*)'
+plumb        to        none
+plumb        start        rc -c $1
diff --git a/plumb/fileaddr b/plumb/fileaddr
t@@ -0,0 +1,3 @@
+addrelem='((#?[0-9]+)|(/[A-Za-z0-9_\^]+/?)|[.$])'
+addr=:($addrelem([,;+\-]$addrelem)*)
+