aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2003-11-23 18:30:04 +0000
committerrsc <devnull@localhost>2003-11-23 18:30:04 +0000
commite70f30508317d83b3f65704229c198aba2b10730 (patch)
treef669c0b02fc3e1028c1b7fd8f3118895f8d9487e
parent1379cecf675b52e268cf913699301b027ec7f816 (diff)
downloadplan9port-e70f30508317d83b3f65704229c198aba2b10730.tar.gz
plan9port-e70f30508317d83b3f65704229c198aba2b10730.tar.bz2
plan9port-e70f30508317d83b3f65704229c198aba2b10730.zip
add plumbing files.
-rw-r--r--plumb/basic105
-rw-r--r--plumb/fileaddr3
2 files changed, 108 insertions, 0 deletions
diff --git a/plumb/basic b/plumb/basic
new file mode 100644
index 00000000..d897fcde
--- /dev/null
+++ b/plumb/basic
@@ -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
new file mode 100644
index 00000000..0f08dc3e
--- /dev/null
+++ b/plumb/fileaddr
@@ -0,0 +1,3 @@
+addrelem='((#?[0-9]+)|(/[A-Za-z0-9_\^]+/?)|[.$])'
+addr=:($addrelem([,;+\-]$addrelem)*)
+