hlfw.ca

task

ref: e026625830c18a358a485d7c34002d3f853cac55
dir: /task/

View raw version
#!/bin/rc -e
rfork ne

fn editmsg{
	if(! test -s $msgfile.tmp){
		>$msgfile.tmp {
			echo -n '# tag:' $tag
			if(! ~ $#before 0)
				echo -n ' before:' $before
			if(! ~ $#after 0)
				echo -n ' after:' $after
			echo ''
			echo $data
		}
		edit=1
	}
	if(~ $#editor 0)
		editor=hold
	$editor $msgfile.tmp
}

fn gettag{
	files=`{ls .pro/task/}
	if(! ~ $#change 0)
		tag=$change
	if not
		tag=$#files
}

fn finish{
	cp $msgfile.tmp .pro/task/$tag
	# TODO: . common.rc to set $project, as it's useful for our outputs
	#echo '$project:$tag'
}

fn sigexit{
	if(! ~ $#msgfile 0)
		rm -f $msgfile
	if(! ~ $#msgfile.tmp 0)
		rm -f $msgfile.tmp
}

flagfmt='c:change change, a:after after, b:before before, e:edit'; args='[msg ...]'
eval `''{aux/getflags $*} || exec aux/usage

msgfile=/tmp/pro-msg.$pid
if(! ~ $#* 0)
	data=`{echo $*}
if(! ~ $#change 0 )
	if(test -s .pro/task/$change){
		cat .pro/task/$change > $msgfile.tmp
		if(! ~ $#data 0)
			echo $data >> $msgfile.tmp
	}

@{
	flag e +
	gettag
	editmsg
	finish
} || echo 'could not write task:' $status >[1=2]
exit ''