17dd7cddfSDavid du Colombier#!/bin/rc 27dd7cddfSDavid du Colombier 39a747e4fSDavid du Colombierrfork e 49a747e4fSDavid du Colombierpath=(/bin/) 59a747e4fSDavid du Colombier 67dd7cddfSDavid du Colombiersym = 'threadmain?z 77dd7cddfSDavid du Colombier main?z' 87dd7cddfSDavid du Colombier 97dd7cddfSDavid du Colombierfn dbsrc{ 107dd7cddfSDavid du Colombier echo $sym | db $1 | sed '1d;/symbol not found/d;s/.*\(\) //' 117dd7cddfSDavid du Colombier} 127dd7cddfSDavid du Colombier 137dd7cddfSDavid du Colombierfn go{ 147dd7cddfSDavid du Colombier type=`{file <$1 | sed 's/stdin: //'} 157dd7cddfSDavid du Colombier switch($type){ 167dd7cddfSDavid du Colombier case 'rc executable file' 177dd7cddfSDavid du Colombier plumbit $1 '(rc executable)' 187dd7cddfSDavid du Colombier case *executable* *'plan 9 boot image'* 197dd7cddfSDavid du Colombier plumbit `{dbsrc $1} '(executable)' 207dd7cddfSDavid du Colombier case * 217dd7cddfSDavid du Colombier echo 'src: can''t find source for '$1 - unrecognized type $type >[1=2] 227dd7cddfSDavid du Colombier } 237dd7cddfSDavid du Colombier} 247dd7cddfSDavid du Colombier 257dd7cddfSDavid du Colombierfn plumbit{B $1} 267dd7cddfSDavid du Colombier 277dd7cddfSDavid du Colombierfn usage{ 287dd7cddfSDavid du Colombier echo usage: 'src [-n] [-s symbol] executable ...'>[1=2] 297dd7cddfSDavid du Colombier exit usage 307dd7cddfSDavid du Colombier} 317dd7cddfSDavid du Colombier 327dd7cddfSDavid du Colombierwhile(~ $1 -*) 337dd7cddfSDavid du Colombier switch($1){ 347dd7cddfSDavid du Colombier case -n 357dd7cddfSDavid du Colombier shift 367dd7cddfSDavid du Colombier fn plumbit {echo $1} 377dd7cddfSDavid du Colombier case -s 387dd7cddfSDavid du Colombier shift 397dd7cddfSDavid du Colombier # add main in case symbol is undefined 407dd7cddfSDavid du Colombier sym=$1'?z 417dd7cddfSDavid du Colombier main?z' 427dd7cddfSDavid du Colombier shift 437dd7cddfSDavid du Colombier case -* 447dd7cddfSDavid du Colombier usage 457dd7cddfSDavid du Colombier } 467dd7cddfSDavid du Colombier 477dd7cddfSDavid du Colombierif(~ $#* 0) usage 487dd7cddfSDavid du Colombier 497dd7cddfSDavid du Colombierfor(i){ 507dd7cddfSDavid du Colombier if(test -f $i) go $i 517dd7cddfSDavid du Colombier if not if(test -f /bin/$i) go /bin/$i 527dd7cddfSDavid du Colombier if not if(test -f /bin/*/$i) go /bin/*/$i 53*51711cb6SDavid du Colombier if not if(test -f /bin/*/*/$i) go /bin/*/*/$i 547dd7cddfSDavid du Colombier if not echo 'src: can''t find '$i 557dd7cddfSDavid du Colombier} 56