xref: /inferno-os/usr/inferno/lib/plumbing (revision 46439007cf417cbd9ac8049bb4122c890097a0fa)
1# these are in order from most specific to least,
2# since first rule that fires wins.
3
4# image files go to wm/view
5kind is text
6data matches '[a-zA-Z0-9_\-./]+'
7data matches '([a-zA-Z0-9_\-./]+)\.(jpg|jpeg|gif|bit|png)'
8data isfile     $0
9plumb to view
10plumb start /dis/wm/view.dis -i $file
11
12# sounds go to auplay
13kind is text
14data matches '[a-zA-Z0-9_\-./]+'
15data matches '([a-zA-Z0-9_\-./]+)\.(iaf|wav)'
16data isfile     $0
17plumb alwaysstart auplay
18plumb start /dis/auplay.dis $file
19
20# URLs go to wm/charon
21kind is text
22data 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_?#~&/\-]+)*'
23plumb to web
24plumb start /dis/charon.dis $0
25
26# file URLs go to wm/charon
27kind is text
28data matches '[a-zA-Z0-9_/\-]+\.html?'
29data isfile $0
30data set file://localhost$file
31plumb to web
32plumb start /dis/charon.dis $data
33
34# .m files are looked up in /module and passed to wm/brutus
35kind is text
36data matches '([a-zA-Z0-9]+\.m)(:[0-9]+)?'
37data isfile     /module/$1
38data set        /module/$0
39plumb to edit
40plumb start /dis/wm/brutus.dis $file$2
41
42# existing files, possibly tagged by line number, go to wm/brutus
43kind is text
44data matches '([.a-zA-Z0-9_/\-]+[a-zA-Z0-9_/\-])(:[0-9]+)?'
45data isfile     $1
46plumb to edit
47plumb start /dis/wm/brutus.dis $file$2
48
49# existing files go to brutus
50kind is text
51data matches '[a-zA-Z0-9_./\-]+'
52data isdir      $0
53plumb alwaysstart dir # nasty plumbing hack
54plumb start /dis/wm/dir.dis $dir
55
56# man pages
57kind is text
58data matches '([a-zA-Z\-]+)\(([0-9]+)\)'
59plumb alwaysstart man # nasty plumbing hack
60plumb start /dis/wm/man.dis $2 $1
61