#!/usr/local/plan9/bin/rc

. 9.rc
sym = 'threadmain?z
	p9main?z
	main?z'

fn dbsrc{
	echo $sym | db $1 >[2]/dev/null | 9 sed '/symbol not found/d;s/.*\(\) //'
}

fn go{
	type=`{9 file $1}
	switch($type){
	case *script*
		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=`{whatis $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
}
