summaryrefslogtreecommitdiff
path: root/sys/lib/plumb/basic
blob: 4b514ccdedb80f9218e4421d5a7ea22e4f7a6acf (plain)
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
# 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

# open urls with web browser
type is text
data matches 'https?://[^ ]+'
plumb to web
plumb client window $browser

# rtf files go to wdoc2txt
type is text
data matches '[a-zA-Z¡-￿0-9_\-.,/]+'
data matches '([a-zA-Z¡-￿0-9_\-.,/]+)\.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

# audio
type is text
data matches '[a-zA-Z¡-￿0-9_\-.,/]+'
data matches '([a-zA-Z¡-￿0-9_\-.,/]+)\.(mp3|MP3|ogg|OGG|flac|FLAC|wav|WAV|au|AU|mid|MID|mus|MUS|m3u|M3U|pls|PLS|plist|PLIST)'
arg isfile	$0
plumb to audio
plumb start window -scroll play $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|PPM|bit|BIT|png|PNG|pgm|PGM|bmp|BMP|yuv|YUV|tga|TGA)'
arg isfile	$0
plumb to image
plumb client page -wi

# page bookmarks
type is text
data matches '(([a-zA-Z¡-￿0-9_\-.,/]+)\.(ps|PS|eps|EPS|pdf|PDF|dvi|DVI|doc|DOC|epub|EPUB|cb[tz]|CB[TZ]))!(.+)'
arg isfile	$1
data set	$file
attr add	addr=$4
plumb to image
plumb start page -wij $file!$4 $file

# postscript/pdf/dvi/doc 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|doc|DOC|epub|EPUB|cb[tz]|CB[TZ])'
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 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 /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 -noscroll -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-9])\)'
plumb start rc -c 'man -b '$2' '$1'

# RFC references are looked up in /lib/rfc and passed to editor
type is text
data	matches 'RFC ?([0-9]+)'
arg isfile /lib/rfc/rfc$1
data set	$file
plumb to edit
plumb client window $editor

# 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