#!/bin/csh -f

#@(#)Collect and pack mail v. 5.0 Oct 1994 josdb@xs4all.nl (Jos den Bekker)

if ( $?MAIL && (! -e $MAIL || -z $MAIL) ) then
  echo "${prg}: No mail for $user"
  exit
endif

set workdir=/tmp/mail.$$
set polldir=~/poll
set date=`date +%d%m`
set prg=`basename $0`
set lockfile=ucbmail
set nonomatch

if ( ! -d $polldir ) then
  set polldir=~
endif

if ( -d $workdir ) then
  echo "${prg}: working-directory $workdir already exists."
  exit 1
endif

mkdir $workdir
if ( $status != 0 ) then
  echo "${prg}: error creating working directory $workdir"
  exit 1
endif

onintr interrupt

switch ( $lockfile )
  case "ucbmail":
    ( echo 's1-$' $workdir/$user ; echo q ) | /usr/ucb/mail
    if ( $status != 0 ) then
      rm -rf $workdir
      exit 1
    endif
    breaksw
  case "lockfile":
    lockfile -ml
    mv $MAIL $workdir/$user >& /dev/null 
    lockfile -mu
    breaksw
  default:
    echo "{prg}: unknown locking device; aborting"
    exit 1 
    breaksw
endsw


if ( -e $polldir/mail*.zip.* ) rm $polldir/mail*.zip.*

if ( -e $polldir/mail$date.zip ) mv $polldir/mail$date.zip $polldir/mail$date.zip.$$

zip -mjbq /tmp $polldir/mail$date $workdir/$user
if ( $status != 0) then
  echo "${prg}: zip error; mail is in $workdir"
  exit 1
endif

rm -rf $workdir
exit 0

interrupt:
onintr -
if ( $lockfile == "lockfile" )
  lockfile -mu
endif
cd
echo -n "${prg}: interrupted... "
if ( `/bin/ls $workdir | wc -l` == 0 ) then
  echo "no output"
  rm -rf $workdir
else 
  echo "output is in $workdir"
endif
exit 1
