]> git.lizzy.rs Git - plan9front.git/blob - rc/bin/src
Remove ap(1)
[plan9front.git] / rc / bin / src
1 #!/bin/rc
2
3 rfork e
4 path=(/bin/)
5
6 sym = 'threadmain?z
7         main?z'
8
9 fn dbsrc{
10         echo $sym | db $1 | sed '1d;/symbol not found/d;s/.*\(\) //'
11 }
12
13 fn go{
14         type=`{file <$1 | sed 's/stdin: //'}
15         switch($type){
16         case 'Ascii'
17                 plumbit $1 '(ascii file)'
18         case 'rc executable file'
19                 plumbit $1 '(rc executable)'
20         case *executable* *'plan 9 boot image'*
21                 plumbit  `{dbsrc $1} '(executable)'
22         case *
23                 echo 'src: can''t find source for '$1 - unrecognized type $type >[1=2]
24         }
25 }
26
27 fn plumbit{B $1}
28
29 fn usage{
30         echo usage: 'src [-n] [-s symbol] executable ...'>[1=2]
31         exit usage
32 }
33
34 while(~ $1 -*)
35         switch($1){
36         case -n
37                 shift
38                 fn plumbit {echo $1}
39         case -s
40                 shift
41                 # add main in case symbol is undefined
42                 sym=$1'?z
43                         main?z'
44                 shift
45         case -*
46                 usage
47         }
48
49 if(~ $#* 0) usage
50
51 for(i){
52         if(test -f $i) go $i
53         if not if(test -f /bin/$i) go /bin/$i
54         if not if(test -f /bin/*/$i) go /bin/*/$i
55         if not if(test -f /bin/*/*/$i) go /bin/*/*/$i
56         if not echo 'src: can''t find '$i
57 }