shithub: werc

ref: 6f36aac454d029203eacefcb385307668635ca4c
dir: /bin/ssam/

View raw version
#!/bin/rc
# ssam - stream interface to sam
rfork e

fn enosam { echo ssam: sam not found >[1=2] }
for(i in `{whatis sam}){
	if(test -x $i)
		j=1
}
if(~ $#j 0){
	enosam
	exit enosam
}

flagfmt='n,e script,f sfile'
args='[ file ... ]'
argv0=$0
fn usage { echo usage: $argv0 '[ -n ] [ -e script ] [ -f sfile ] [ file ... ]' >[1=2] }
if(! ifs=() eval `{aux/getflags $*}){
	usage
	exit usage
}

if(~ $#flage 0 && ~ $#flagf 0) {
	if(~ $#* 0) {
		usage
		exit usage
	}
	flage=$1
	shift
}

if(~ $#TMPDIR 0)
	TMPDIR=/tmp
if(~ $#user 0)
	user=$USER
tmp=$TMPDIR/ssam.tmp.$user.$pid
cat $* >$tmp

{
	# select entire file
	echo ',{'
	echo k
	echo '}'
	echo 0k

	# run scripts, print
	if(! ~ $#flagf 0)
		cat $flagf
	if(! ~ $#flage 0)
		echo $flage
	if(~ $#flagn 0)
		echo ,
} | sam -d $tmp >[2]/dev/null

rm -f $tmp