plumbing (raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 |
# 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 qiv $file # music/video files go to mpv type is text data matches '[a-zA-Z¡-0-9_\-./@ ]+' data matches '([a-zA-Z¡-0-9_\-./@ ]+)\.(mp3|MP3|wav|WAV|ogg|OGG|opus|OPUS|avi|AVI|mp4|MP4|mkv|MKV)' arg isfile $0 plumb to mpv plumb start mpv $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 zathura $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 libreoffice plumb start libreoffice $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-#0+#$3-#1,$4-#0+#$5-#1 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-#0+#$3-#1 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 # 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 /home/nilix/src/zenUtils/muttwrapper.sh $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')''' |