Blame


1 2b85f70d 2005-01-11 devnull #!/usr/local/plan9/bin/rc
2 ba03b891 2004-04-20 devnull
3 ba03b891 2004-04-20 devnull sym = 'threadmain?z
4 ba03b891 2004-04-20 devnull p9main?z
5 ba03b891 2004-04-20 devnull main?z'
6 ba03b891 2004-04-20 devnull
7 ba03b891 2004-04-20 devnull fn dbsrc{
8 2b85f70d 2005-01-11 devnull echo $sym | db $1 | 9 sed '1d;/symbol not found/d;s/.*\(\) //'
9 ba03b891 2004-04-20 devnull }
10 ba03b891 2004-04-20 devnull
11 ba03b891 2004-04-20 devnull fn go{
12 ba03b891 2004-04-20 devnull type=`{file $1}
13 ba03b891 2004-04-20 devnull switch($type){
14 ba03b891 2004-04-20 devnull case *'script text'*
15 ba03b891 2004-04-20 devnull plumbit $1 '(script)'
16 ba03b891 2004-04-20 devnull case *executable* *'plan 9 boot image'* *'shared object'*
17 ba03b891 2004-04-20 devnull plumbit `{dbsrc $1} '(executable)'
18 ba03b891 2004-04-20 devnull case *
19 ba03b891 2004-04-20 devnull echo 'src: can''t find source for '$1 - unrecognized type $type >[1=2]
20 ba03b891 2004-04-20 devnull }
21 ba03b891 2004-04-20 devnull }
22 ba03b891 2004-04-20 devnull
23 ba03b891 2004-04-20 devnull fn plumbit{B $1}
24 ba03b891 2004-04-20 devnull
25 ba03b891 2004-04-20 devnull fn usage{
26 ba03b891 2004-04-20 devnull echo usage: 'src [-n] [-s symbol] executable ...'>[1=2]
27 ba03b891 2004-04-20 devnull exit usage
28 ba03b891 2004-04-20 devnull }
29 ba03b891 2004-04-20 devnull
30 ba03b891 2004-04-20 devnull while(~ $1 -*)
31 ba03b891 2004-04-20 devnull switch($1){
32 ba03b891 2004-04-20 devnull case -n
33 ba03b891 2004-04-20 devnull shift
34 ba03b891 2004-04-20 devnull fn plumbit {echo $1}
35 ba03b891 2004-04-20 devnull case -s
36 ba03b891 2004-04-20 devnull shift
37 ba03b891 2004-04-20 devnull # add main in case symbol is undefined
38 ba03b891 2004-04-20 devnull sym=$1'?z
39 ba03b891 2004-04-20 devnull threadmain?z
40 ba03b891 2004-04-20 devnull p9main?z
41 ba03b891 2004-04-20 devnull main?z'
42 ba03b891 2004-04-20 devnull shift
43 ba03b891 2004-04-20 devnull case -*
44 ba03b891 2004-04-20 devnull usage
45 ba03b891 2004-04-20 devnull }
46 ba03b891 2004-04-20 devnull
47 ba03b891 2004-04-20 devnull if(~ $#* 0) usage
48 ba03b891 2004-04-20 devnull ifs='
49 ba03b891 2004-04-20 devnull '
50 ba03b891 2004-04-20 devnull for(i){
51 ba03b891 2004-04-20 devnull wi=`{which $i >[2]/dev/null}
52 ba03b891 2004-04-20 devnull if(test -f $i) go $i
53 ba03b891 2004-04-20 devnull if not if(~ $#wi 1 && test -f $wi) go $wi
54 ba03b891 2004-04-20 devnull if not echo 'src: can''t find '$i
55 ba03b891 2004-04-20 devnull }