#!/bin/csh -f

# @(#)Collect mail in SOUP file with uqwk. Jos den Bekker <josdb@xs4all.nl>
# $Id: soupmail,v 1.2 1997/10/03 16:39:14 josdb Exp josdb $

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

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

# N.B.: Customize the following variable according to you preference,
# or according to the availability of either procmail's lockfile,
# or /usr/ucb/mail ("ucbmail") on your Unix system.

set lockfile=ucbmail

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
else
  cd $workdir
endif

onintr interrupt

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

if ( $status != 0 ) then
  echo "${prg}: uqwk error; mail box is moved to $workdir/qwk$$"
  exit 1
endif

zip -q mail$date AREAS *.MSG
if ( $status != 0 ) then
  echo "${prg}: zip error; mail output of uqwk is in $workdir"
  exit 1
endif

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

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

mv mail$date.zip $polldir
if ( $status != 0 ) then
  echo "${prg}: error moving $workdir/mail$date.zip"
  exit 1
endif  

cd
rm -rf $workdir

sz $polldir/mail$date.zip
if ( $status != 0 ) then
  exit 1
else
  mv $polldir/mail$date.zip $polldir/mail$date.zip.$$
endif
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
