#!/bin/rc rfork e if (~ $#* 0){ echo usage: M cmd [msgs] >[1=2] echo 'cmd=arch|spam|inbox|rm|print|list|mime|reply' exit usage } cmd=$1 shift if (~ $#* 0){ msgs=`{cat /tmp/msgs.$user | grep '.*/[0-9]*/(.\.)?[0-9]*(/.*)?$' | sed -e 's|((.*/)?[0-9]*/(.\.)?[0-9]*)(/.*)?|\1|'} } if not msgs=`{for (x) echo $x | sed -e 's|((.*/)?[0-9][0-9]*/(.\.)?[0-9][0-9]*)(/.*)?|\1|g'} if (~ $#INBOX 0) INBOX=/mail/box/$user/msgs for (m in $msgs){ if (! test -e $m) if (test -e $INBOX/$m) m=$INBOX/$m if(test -e $m) switch($cmd){ case a arch aname=`{echo $m | sed 's,/(.\.)?([0-9]*)$,/a.\2,'} ~ $m $aname || mv $m $aname case s spam aname=`{echo $m | sed 's,/(.\.)?([0-9]*)$,/s.\2,'} ~ $m $aname || mv $m $aname case i inbox aname=`{echo $m | sed 's,/(.\.)?([0-9]*)$,/\2,'} ~ $m $aname || mv $m $aname case d rm echo rm -r $m case m mime if (test -e $m/*.*) echo $m/*.* if (test -d $m/[0-9]*) echo $m/[0-9]* case l list echo $m case p print echo $m cat $m/text case r reply rfork n upas/fs -p -f $m/raw rt=`{cat /mail/fs/mbox/1/replyto} f=`{cat /mail/fs/mbox/1/from} cc=`{cat /mail/fs/mbox/1/cc /mail/fs/mbox/1/to} sub=`{cat /mail/fs/mbox/1/subject} { if (~ $#rt 0) echo To: $f if not echo To: $rt if (! ~ $#cc 0) echo Cc: $cc echo Subject: $sub echo Replying: $m/raw echo q '> ' $m/text } > /mail/box/$user/out/Out.$pid unmount /mail/fs if(! ~$#file 0 && ~ $#panel 0){ panel=`{ls -d /mnt/ui/appl/*ox*/*tree*|sed 1q} if(~ $#panel 0) echo look /mail/box/$user/out/Out.$pid if not echo look /mail/box/$user/out/Out.$pid > $panel/ctl } if not { plumb /mail/box/$user/out/Out.$pid echo edit and remove '"Out."' from the file name } case * echo usage: M 'arch|rm|cp' [msgs] >[1=2] exit usage } } exit ''