1 f1007ee0 2006-05-21 devnull #!/usr/local/plan9/bin/rc
3 f1007ee0 2006-05-21 devnull fn read9p {
4 f1007ee0 2006-05-21 devnull srv=$1; shift
5 f1007ee0 2006-05-21 devnull 9p read $srv >[2=1]|grep -v '^9p\:'
8 f1007ee0 2006-05-21 devnull fn dir9p {
9 f1007ee0 2006-05-21 devnull srv=$1; shift
10 f1007ee0 2006-05-21 devnull 9p ls $srv >[2=1]|grep -v '^9p\:'
14 f1007ee0 2006-05-21 devnull fn catmesg {
15 f1007ee0 2006-05-21 devnull # hold on for a second
16 f1007ee0 2006-05-21 devnull TMP=/tmp/$USER.`{date -n}; sleep 1
18 f1007ee0 2006-05-21 devnull read9p $msg/body >$TMP.body
19 f1007ee0 2006-05-21 devnull t=`{read9p $msg/type}
20 f1007ee0 2006-05-21 devnull switch($t){
21 f1007ee0 2006-05-21 devnull case text/html
23 f1007ee0 2006-05-21 devnull ,x/<!--(-?[^\-]|--[^>]|\n)*-->/ c//
24 f1007ee0 2006-05-21 devnull ,x/<[^>]+>/d
27 f1007ee0 2006-05-21 devnull ,y/<[^>]+>/d
29 f1007ee0 2006-05-21 devnull '| sam -d $TMP.body|[2] sed '1d;/^\?/d'
30 f1007ee0 2006-05-21 devnull case text/*
31 f1007ee0 2006-05-21 devnull cat $TMP.body
32 f1007ee0 2006-05-21 devnull case message/*
33 f1007ee0 2006-05-21 devnull cat $TMP.body
34 f1007ee0 2006-05-21 devnull case multipart/related
35 f1007ee0 2006-05-21 devnull if (~ `{read9p $msg/1/type} text/plain)
36 f1007ee0 2006-05-21 devnull catmesg $msg/1
37 f1007ee0 2006-05-21 devnull if not if (~ `{read9p $msg/2/type} text/plain)
38 f1007ee0 2006-05-21 devnull catmesg $msg/2
40 f1007ee0 2006-05-21 devnull for (i in `{dir9p $msg|awk '$10 ~ /[0-9][0-9]*/ {print $10}'})
41 f1007ee0 2006-05-21 devnull catmesg $msg/$i
45 f1007ee0 2006-05-21 devnull # should there be more?
47 f1007ee0 2006-05-21 devnull rm -f $TMP.body
50 f1007ee0 2006-05-21 devnull if (~ $#* 0)
51 f1007ee0 2006-05-21 devnull echo usage: msgcat mail/mbox/msgn && exit 1
54 f1007ee0 2006-05-21 devnull if (~ `{read9p $mesg/lines} '')
55 f1007ee0 2006-05-21 devnull echo no such message $mesg && exit 2
58 f1007ee0 2006-05-21 devnull read9p $mesg/unixheader; read9p $mesg/header
60 f1007ee0 2006-05-21 devnull catmesg $mesg