mirror of
https://github.com/9fans/plan9port.git
synced 2025-01-24 11:41:58 +00:00
How could I forget this?
This commit is contained in:
parent
dddc2ed156
commit
ba03b8910d
1 changed files with 55 additions and 0 deletions
55
bin/src
Executable file
55
bin/src
Executable file
|
@ -0,0 +1,55 @@
|
|||
#!/usr/local/plan9/bin/rc
|
||||
|
||||
sym = 'threadmain?z
|
||||
p9main?z
|
||||
main?z'
|
||||
|
||||
fn dbsrc{
|
||||
echo $sym | db $1 | 9sed '1d;/symbol not found/d;s/.*\(\) //'
|
||||
}
|
||||
|
||||
fn go{
|
||||
type=`{file $1}
|
||||
switch($type){
|
||||
case *'script text'*
|
||||
plumbit $1 '(script)'
|
||||
case *executable* *'plan 9 boot image'* *'shared object'*
|
||||
plumbit `{dbsrc $1} '(executable)'
|
||||
case *
|
||||
echo 'src: can''t find source for '$1 - unrecognized type $type >[1=2]
|
||||
}
|
||||
}
|
||||
|
||||
fn plumbit{B $1}
|
||||
|
||||
fn usage{
|
||||
echo usage: 'src [-n] [-s symbol] executable ...'>[1=2]
|
||||
exit usage
|
||||
}
|
||||
|
||||
while(~ $1 -*)
|
||||
switch($1){
|
||||
case -n
|
||||
shift
|
||||
fn plumbit {echo $1}
|
||||
case -s
|
||||
shift
|
||||
# add main in case symbol is undefined
|
||||
sym=$1'?z
|
||||
threadmain?z
|
||||
p9main?z
|
||||
main?z'
|
||||
shift
|
||||
case -*
|
||||
usage
|
||||
}
|
||||
|
||||
if(~ $#* 0) usage
|
||||
ifs='
|
||||
'
|
||||
for(i){
|
||||
wi=`{which $i >[2]/dev/null}
|
||||
if(test -f $i) go $i
|
||||
if not if(~ $#wi 1 && test -f $wi) go $wi
|
||||
if not echo 'src: can''t find '$i
|
||||
}
|
Loading…
Reference in a new issue