#!/bin/sh -f
cd /usr/users/staff/aids
subject=`sed -e 's/^Subject: \(.*\)/\1/p' -n`
moderator="aids@sole.cs.ucla.edu"
while read flag com number ; do
  if [ "$flag" = "From:" -a "$moderator" = "aids@sole.cs.ucla.edu" ] 
    then moderator="$com $number" ; fi
  if [ "$flag" != "AIDS.MOD.COM" -a "$flag" != "aids.mod.com" ] 
    then continue ; fi
  if [ "$com" = "MODIFY" -o "$com" = "modify" ] ; then
      while read trashline ; do
	if [ "$trashline" = "-----------------  SCI.MED.AIDS ARCHIVE NUMBER $number  -----------------" ] 
	  then mv ARCHIVE.IN/$number ARCHIVE.IN/$number.old
	    cp /dev/null ARCHIVE.IN/$number
	    while read textline ; do
	      if [ "$textline" = "-----------------  SCI.MED.AIDS ARCHIVE NUMBER $number  -----------------" ] 
		then break 5
		fi
	      echo "$textline" >> ARCHIVE.IN/$number
	      done
	  fi
        done
	echo "AIDS.MOD.COM $com $number : Did not find article text in command message!"
	exit
    fi
  case $com in 
    POST | MODIFY | post | modify )
      if [ ! -r ARCHIVE.IN/$number ] 
        then if [ ! -r ARCHIVE.POST/$number ]
          then if [ ! -r ARCHIVE.REJECT/$number ]
	    then echo "Attempt to $com article $number failed. No such article."
	    else 
	      set -- `fgrep Approved: ARCHIVE.REJECT/$number`
	      echo "MODERATOR CONFLICT:\n\
  $moderator attempted to $com article $number.\n\
  It was previously rejected by $2.\n"
	    fi
          fi
	continue
        fi
      echo 's/^Approved:.*/Approved:' "$moderator/g\nw" \
          | ex - +'/^Approved:' ARCHIVE.IN/$number
      if /usr/local/bin/inews -m < ARCHIVE.IN/$number ; then
	subject=`sed -e 's/^Subject: \(.*\)/\1/p' -n ARCHIVE.IN/$number`
	cat ARCHIVE.IN/$number AIDSWEEK.sig | \
	    mailx -s "$subject" cdp!aidsweekly@labrea.stanford.edu
	if grep '^Sender:.*AIDSNEWS%RUTVM1\.BITNET' ARCHIVE.IN/$number \
	    > /dev/null ; then
	  aidsnews=1
	else
	  aidsnews=0
	  cat ARCHIVE.IN/$number AIDSNEWS.sig | mailx -s "($number) $subject" AIDS%RUTVM1.BITNET@CUNYVM.CUNY.EDU 
	fi
	if mv ARCHIVE.IN/$number ARCHIVE.POST/$number ; then
	  if echo "$number	POSTED"`date` >> ARCHIVE.POST/INDEX ; then
	    status=0
	  else
	    echo "AIDS.MOD.COM $com $number INDEX update failed.  Repair." 
	  fi
	else
	  echo "AIDS.MOD.COM $com $number Mv failed.  Please repair." 
	fi
      else
	echo "AIDS.MOD.COM $com $number Inews failed.  Please repair."
      fi
      ;;
    REJECT | reject)
      if [ ! -r ARCHIVE.IN/$number ] 
        then if [ ! -r ARCHIVE.REJECT/$number ]
          then if [ ! -r ARCHIVE.POST/$number ]
	    then echo "Attempt to $com article $number failed. No such article."
	    else
	      set -- `fgrep Approved: ARCHIVE.POST/$number`
	      echo "MODERATOR CONFLICT:\n\
  $moderator attempted to $com article $number.\n\
  It was previously posted by $2.\n"
	    fi
          fi
	continue
        fi
      echo "s/^Approved:.*/Approved: $moderator/g\nw" \
          | ex - +'/^Approved:' ARCHIVE.IN/$number
      if mv ARCHIVE.IN/$number ARCHIVE.REJECT/$number ; then
	if echo "$number	reject	$moderator	"`date` >> ARCHIVE.REJECT/INDEX ; then
	  status=0
	else
	  echo "AIDS.MOD.COM $com $number INDEX update failed.  Please repair." 
	fi
      else
	echo "AIDS.MOD.COM $com $number Mv failed.  Please repair." 
      fi
      ;;
    *)
      echo "Unrecognized aids.mod.com command: $flag $com $number"
      ;;
    esac
done
