xref: /plan9/sys/lib/plumb/basic (revision 84860c5d80372cab6c5e871d17f5695a8d0192c9)
17dd7cddfSDavid du Colombier# these are generally in order from most specific to least,
27dd7cddfSDavid du Colombier# since first rule that fires wins.
37dd7cddfSDavid du Colombier
47dd7cddfSDavid du Colombierinclude fileaddr
57dd7cddfSDavid du Colombier
67dd7cddfSDavid du Colombier# declarations of ports without rules
77dd7cddfSDavid du Colombierplumb to seemail
87dd7cddfSDavid du Colombierplumb to showmail
97dd7cddfSDavid du Colombier
103ff48bf5SDavid du Colombier# cheap http/gif,jpeg,ps,pdf renderer
113ff48bf5SDavid du Colombiertype is text
1217dd33a2SDavid du Colombierdata 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|png|PNG)'
131066d6deSDavid du Colombierplumb start rc -c 'hget '''$0''' | page -w'
143ff48bf5SDavid du Colombier
1543aadf5eSDavid du Colombier## open urls with abaco web browser
1643aadf5eSDavid du Colombier#type is text
1743aadf5eSDavid du Colombier#data matches 'https?://[a-zA-Z0-9_@\-]+([.:][a-zA-Z0-9_@\-]+)*/?[a-zA-Z0-9_?,%#~&/\-+=]+([:.][a-zA-Z0-9_?,''%#~&/\-+=;]+)*'
1843aadf5eSDavid du Colombier#plumb to web
1943aadf5eSDavid du Colombier#plumb client window abaco
2043aadf5eSDavid du Colombier
21f5736e95SDavid du Colombier# rtf files go to wdoc2txt
229a747e4fSDavid du Colombiertype is text
239a747e4fSDavid du Colombierdata matches '[a-zA-Z¡-￿0-9_\-./]+'
24f5736e95SDavid du Colombierdata matches '([a-zA-Z¡-￿0-9_\-./]+)\.rtf'
259a747e4fSDavid du Colombierarg isfile	$0
269a747e4fSDavid du Colombierplumb to msword
279a747e4fSDavid du Colombierplumb start wdoc2txt $file
289a747e4fSDavid du Colombier
299a747e4fSDavid du Colombier# start rule for microsoft word documents without .doc suffix
309a747e4fSDavid du Colombiertype is text
319a747e4fSDavid du Colombierdst is msword
329a747e4fSDavid du Colombierplumb to msword
339a747e4fSDavid du Colombierplumb start wdoc2txt $file
349a747e4fSDavid du Colombier
359a747e4fSDavid du Colombier# email addresses get a new mail window
369a747e4fSDavid du Colombiertype is text
375d459b5aSDavid du Colombierdata matches '[a-zA-Z0-9_+.\-]+@[a-zA-Z0-9_+.\-]*'
389a747e4fSDavid du Colombierplumb to sendmail
399a747e4fSDavid du Colombierplumb start window rc -c '''echo % mail '''$0'; mail '$0
409a747e4fSDavid du Colombier
417dd7cddfSDavid du Colombier# image files go to page
427dd7cddfSDavid du Colombiertype is text
437dd7cddfSDavid du Colombierdata matches '[a-zA-Z¡-￿0-9_\-./]+'
4437a6523bSDavid du Colombierdata matches '([a-zA-Z¡-￿0-9_\-./]+)\.(jpe?g|JPE?G|gif|GIF|tiff?|TIFF?|ppm|PPM|bit|BIT|png|PNG|pgm|PGM|bmp|BMP|yuv|YUV)'
457dd7cddfSDavid du Colombierarg isfile	$0
467dd7cddfSDavid du Colombierplumb to image
477dd7cddfSDavid du Colombierplumb client page -wi
487dd7cddfSDavid du Colombier
49f5736e95SDavid du Colombier# postscript/pdf/dvi/doc go to page but not over the a plumb port
507dd7cddfSDavid du Colombier# the port is here for reference but is unused
517dd7cddfSDavid du Colombiertype is text
527dd7cddfSDavid du Colombierdata matches '[a-zA-Z¡-￿0-9_\-./]+'
53f5736e95SDavid du Colombierdata matches '([a-zA-Z¡-￿0-9_\-./]+)\.(ps|PS|eps|EPS|pdf|PDF|dvi|DVI|doc|DOC)'
547dd7cddfSDavid du Colombierarg isfile	$0
557dd7cddfSDavid du Colombierplumb to postscript
567dd7cddfSDavid du Colombierplumb start page -w $file
577dd7cddfSDavid du Colombier
587dd7cddfSDavid du Colombier# existing files, possibly tagged by line number, go to editor
597dd7cddfSDavid du Colombiertype is text
6037a6523bSDavid du Colombierdata matches '([.a-zA-Z¡-￿0-9_/+\-]*[a-zA-Z¡-￿0-9_/+\-])('$addr')?'
617dd7cddfSDavid du Colombierarg isfile	$1
627dd7cddfSDavid du Colombierdata set	$file
637dd7cddfSDavid du Colombierattr add	addr=$3
647dd7cddfSDavid du Colombierplumb to edit
657dd7cddfSDavid du Colombierplumb client window $editor
667dd7cddfSDavid du Colombier
677dd7cddfSDavid du Colombier# .h files are looked up in /sys/include and passed to edit
687dd7cddfSDavid du Colombiertype is text
697dd7cddfSDavid du Colombierdata matches '([a-zA-Z¡-￿0-9]+\.h)('$addr')?'
707dd7cddfSDavid du Colombierarg isfile	/sys/include/$1
717dd7cddfSDavid du Colombierdata set	$file
727dd7cddfSDavid du Colombierattr add	addr=$3
737dd7cddfSDavid du Colombierplumb to edit
747dd7cddfSDavid du Colombierplumb client window $editor
757dd7cddfSDavid du Colombier
76c54d4d90SDavid du Colombier# .m files are looked up in /usr/inferno/module and passed to edit
779a747e4fSDavid du Colombiertype is text
789a747e4fSDavid du Colombierdata matches '([a-zA-Z¡-￿0-9]+\.m)('$addr')?'
79c54d4d90SDavid du Colombierarg isfile	/usr/inferno/module/$1
809a747e4fSDavid du Colombierdata set	$file
819a747e4fSDavid du Colombierattr add	addr=$3
829a747e4fSDavid du Colombierplumb to edit
839a747e4fSDavid du Colombierplumb client window $editor
849a747e4fSDavid du Colombier
857dd7cddfSDavid du Colombier# faces -> new mail window for message
867dd7cddfSDavid du Colombiertype	is	text
877dd7cddfSDavid du Colombierdata	matches	'[a-zA-Z¡-￿0-9_\-./]+'
887dd7cddfSDavid du Colombierdata	matches	'/mail/fs/[a-zA-Z¡-￿0-9/]+/[0-9]+'
897dd7cddfSDavid du Colombierplumb	to	showmail
907dd7cddfSDavid du Colombierplumb	start	window -r 4 120 750 600 upas/nedmail -s $0
917dd7cddfSDavid du Colombier
927dd7cddfSDavid du Colombier# man index entries are synthesized
937dd7cddfSDavid du Colombiertype is text
9459cc4ca5SDavid du Colombierdata matches '([a-zA-Z¡-￿0-9_\-./]+)\(([1-8])\)'
951066d6deSDavid du Colombierplumb start rc -c 'man -b '$2' '$1'
967dd7cddfSDavid du Colombier
97*84860c5dSDavid du Colombier# RFC references are looked up in /lib/rfc and passed to editor
98*84860c5dSDavid du Colombiertype is text
99*84860c5dSDavid du Colombierdata	matches 'RFC ?([0-9]+)'
100*84860c5dSDavid du Colombierarg isfile /lib/rfc/rfc$1
101*84860c5dSDavid du Colombierdata set	$file
102*84860c5dSDavid du Colombierplumb to edit
103*84860c5dSDavid du Colombierplumb client window $editor
104*84860c5dSDavid du Colombier
1057dd7cddfSDavid du Colombier# start rule for images without known suffixes
1067dd7cddfSDavid du Colombierdst is image
1077dd7cddfSDavid du Colombierplumb to image
1087dd7cddfSDavid du Colombierplumb client page -wi
1097dd7cddfSDavid du Colombier
1107dd7cddfSDavid du Colombier# start rule for postscript without known suffixes
1117dd7cddfSDavid du Colombierdst is postscript
1127dd7cddfSDavid du Colombierarg isfile $data
1137dd7cddfSDavid du Colombierplumb start page -w $data
1149a747e4fSDavid du Colombier
1159a747e4fSDavid du Colombiertype	is	text
1169a747e4fSDavid du Colombierdata	matches	'Local (.*)'
1179a747e4fSDavid du Colombierplumb	to	none
1189a747e4fSDavid du Colombierplumb	start	rc -c $1
119