Blame


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