mirror of
https://github.com/9fans/plan9port.git
synced 2025-01-12 11:10:07 +00:00
61 lines
1.1 KiB
Bash
Executable file
61 lines
1.1 KiB
Bash
Executable file
#!/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
|