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

fn read9p {
	srv=$1; shift
	9p read $srv >[2=1]|grep -v '^9p\:'
}

fn dir9p {
	srv=$1; shift
	9p ls $srv >[2=1]|grep -v '^9p\:'
}
	

fn catmesg {
	# hold on for a second
	TMP=/tmp/$USER.`{date -n}; sleep 1
	msg=$1;
	read9p $msg/body >$TMP.body
	t=`{read9p $msg/type}
	switch($t){
		case text/html
			echo '
					,x/<!--(-?[^\-]|--[^>]|\n)*-->/ c//
					,x/<[^>]+>/d
					,p
					u
					,y/<[^>]+>/d
					,p
				'| sam -d $TMP.body|[2] sed '1d;/^\?/d'
		case text/*
			cat $TMP.body
		case message/*
			cat $TMP.body
		case multipart/related
			if (~ `{read9p $msg/1/type} text/plain)
				catmesg $msg/1
			if not if (~ `{read9p $msg/2/type} text/plain)
				catmesg $msg/2
			if not {
				for (i in `{dir9p $msg|awk '$10 ~ /[0-9][0-9]*/ {print $10}'})
					catmesg $msg/$i
			}
		case *
			echo $t
		# should there be more?
	}
	rm -f $TMP.body
}

if (~ $#* 0)
	echo usage: msgcat mail/mbox/msgn && exit 1

mesg=$1
if (~ `{read9p $mesg/lines} '')
	echo no such message $mesg && exit 2

			
read9p $mesg/unixheader; read9p $mesg/header
echo
catmesg $mesg
echo
