| # 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 |
| |
| # relative files as file: urls get made into absolute paths |
| type is text |
| data matches 'file:([.a-zA-Z¡-0-9_\-]([.a-zA-Z¡-0-9_/\-]*[a-zA-Z¡-0-9_/\-]))?' |
| arg isfile $1 |
| data set file://$file |
| plumb to web |
| plumb start web $data |
| |
| # urls go to web browser |
| 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_?,%#~&/\-+=]+)*' |
| plumb to web |
| plumb start web $0 |
| |
| # 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 |
| |
| # 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|png|PNG)' |
| arg isfile $0 |
| plumb to image |
| plumb start 9 page $file |
| |
| # 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 9 page $file |
| |
| # open office - s[xt][cdigmw], doc, xls, ppt |
| data matches '[a-zA-Z¡-0-9_\-./]+' |
| data matches '([a-zA-Z¡-0-9_\-./]+)\.([Ss][XxTt][CcDdIiGgMmWw]|[Dd][Oo][Cc]|[Xx][Ll][Ss]|[Pp][Pp][Tt])' |
| arg isfile $0 |
| plumb to openoffice |
| plumb start openoffice $file |
| |
| # existing files tagged by line number:columnumber or linenumber.columnumber, twice, go to editor |
| type is text |
| data matches '([.a-zA-Z¡-0-9_/\-]*[a-zA-Z¡-0-9_/\-])':$twocolonaddr,$twocolonaddr |
| arg isfile $1 |
| data set $file |
| attr add addr=$2-#1+#$3,$4-#1+#$5 |
| plumb to edit |
| plumb client $editor |
| |
| # existing files tagged by line number:columnumber or linenumber.columnumber, twice, go to editor |
| type is text |
| data matches '([.a-zA-Z¡-0-9_/\-]*[a-zA-Z¡-0-9_/\-])':$twocolonaddr |
| arg isfile $1 |
| data set $file |
| attr add addr=$2-#1+#$3 |
| plumb to edit |
| plumb client $editor |
| |
| # 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 client $editor |
| |
| # .h files are looked up in /usr/include and passed to edit |
| type is text |
| data matches '([a-zA-Z¡-0-9/_\-]+\.h)('$addr')?' |
| arg isfile /usr/include/$1 |
| data set $file |
| attr add addr=$3 |
| plumb to edit |
| plumb client $editor |
| |
| # .h files are looked up in /usr/local/include and passed to edit |
| type is text |
| data matches '([a-zA-Z¡-0-9/_\-]+\.h)('$addr')?' |
| arg isfile /usr/local/include/$1 |
| data set $file |
| attr add addr=$3 |
| plumb to edit |
| plumb client $editor |
| |
| # .h files are looked up in $plan9/include and passed to edit |
| type is text |
| data matches '([a-zA-Z¡-0-9/_\-]+\.h)('$addr')?' |
| arg isfile $plan9/include/$1 |
| data set $file |
| attr add addr=$3 |
| plumb to edit |
| plumb client $editor |
| |
| # .m files are looked up in /usr/inferno/module and passed to edit |
| type is text |
| data matches '([a-zA-Z¡-0-9/_\-]+\.m)('$addr')?' |
| arg isfile /usr/inferno/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 |
| |
| # 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 wmail $0 |
| # plumb start window rc -c '''echo % mail '''$0'; mail '$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] | nobs | plumb -i -d edit -a ''action=showdata filename=/man/'$1'('$2')''' |
| |
| # start rule for images without known suffixes |
| dst is image |
| arg isfile $data |
| plumb to image |
| plumb start 9 page $data |
| |
| # start rule for postscript without known suffixes |
| dst is postscript |
| arg isfile $data |
| plumb start 9 page $data |