#ident	"@(#)ml.sh	1.1.3	(a3)	8 aug 1988"
# Save certain articles, currently in spooled mailbox, into several files, and
# read those files, and clean them up.  Then proceed reading the rest.

[ -d Mail -a -w Mail ] || { echo "Directory 'Mail' not available."; exit 1; }
cd Mail || exit 2

art_id=1
sender=2
#dayOwk=3
#monOyr=4
#dayOmo=5
#timOdy=6
artsiz=7
subj_1=8
subj_2=9
subj_3=10
subj_4=11

mailx -H |
 sed -n 's/^ [NU]//p' |	#new or unread
  awk '
   NF=='$artsiz' {
	if ($'$sender'~/lp$/) f="lp";
	if ($'$sender'~/root$/) f="root";
	if ($'$sender'~/uucp$/) f="uucp";
   }
   NF=='$subj_1' {
	if ($(NF)=="/usr/spool/uucp/.Corrupt") f="Corrupt";
	if ($(NF)=="cleanup") f=$(NF);
	if ($(NF)=="cores") f=$(NF);
	if ($(NF)=="transfer-statistics") f="xfer";
	if ($(NF)=="uu-status") f=$(NF);
   }
   $'$subj_1'=="Newsgroup" {
	f=$'$subj_1';
   }
   NF=='$subj_2' {
	if ($(NF-1)=="UucpLog") f=$(NF-1);
	if ($(NF-1)=="trimlib") f=$(NF-1);
	if ($(NF-1)=="uucp") {
		if ($(NF)=="Admin") f=$(NF);
		if ($(NF)=="DENIED") f=$(NF);
		if ($(NF)=="requests") f=$(NF);
	}
   }
   NF=='$subj_3' {
	if ($(NF-2)=="Diskgebruik" && $(NF-1)=="op") f=$(NF-2);
	if ($(NF-2)=="Warning" && $(NF-1)=="From") f=$(NF-2);
	if ($(NF-2)=="sendsys" && $(NF-1)=="control") f=$(NF-2);
	if ($(NF-2)=="uucleanup" && $(NF-1)=="ran;") f=$(NF-2);
   }
   NF=='$subj_4' {
	if ($(NF-3)=="Problems" && $(NF)=="active") f=$(NF-3);
	if ($(NF-3)=="response" && $(NF)=="sendsys") f=$(NF-3);
   }
   {
	if (f=="") next;
	file[f]=file[f]" "$'$art_id';
	f="";
	ct++;
   }
   END {
	if (ct==0) exit(1);
	for (f in file) {
		max=480;
		if (length(file[f]) > max) {
			n=max;
			while (substr(file[f],n,1)!=" ") n--;
			printf("s%s %s\n",substr(file[f],1,n),f);
		}
		else printf("s%s %s\n",file[f],f);
	}
	for (f in file) if (f=="xfer") { print "|",file[f],"\"pg\""; break; }
   }
  ' | { [ $? = 0 ] && mailx; }

for f in "lp" "root" "uucp" \
	"Corrupt" "Newsgroup" "cleanup" "cores" "uu-status" \
	"UucpLog" "trimlib" "Admin" "DENIED" "requests" \
	"sendsys" "uucleanup" "Diskgebruik" "Warning" \
	"Problems" "response" \
	# "xfer"	# Always as last one.  But already taken care of.
do
 [ -f "$f" ] || continue
 echo $f
 case $f in
  "Diskgebruik") mailx -f "$f";;
  "UucpLog") pg "$f";;
  "uu-status")
	sed '	
		/^From/ {
			N
			D
		}
		/^>From/ {
			N
			/^>From.*\n>From/ {
				D
			}
		}
		s/\nSubject: .*//
		/^Status: /d
		/^$/d
	' "$f" | pg;;
  "Admin"|"Corrupt"|"DENIED"|"Problems"|"cleanup"|"lp"|"requests"|"root"|"uucp")
	sed '	
		/^From/ {
			N
			/^From.*\n>From/ {
				D
			}
		}
		/^>From/ {
			N
			/^>From.*\n>From/ {
				D
			}
		}
		s/\nSubject: .*//
		s/\nStatus: .*//
		/^Status: /d
		/^$/d
	' "$f" | pg;;
#  "Corrupt"|"lp"|"root"|"uucp")
#	sed '	
#		/^Status: /d
#		/^$/d
#	' "$f" | pg;;
  "trimlib")
	sed '	
		/^>From /d
		/^To: /d
		/^Status: /d
	' "$f" | pg;;
  "uucleanup") sed -n '/.Xqtdir/p' "$f" | pg;;
  # "xfer") ;;# Already taken care of.
  *)
	sed '
		/^>From /d
		/^Status: /d
		/^$/d
	' "$f" | pg
	;;
 esac
 [ $? = 0 ] && [ "xfer" != "$f" ] && rm "$f"
done

echo "Read mail ? [YN]\c"
read x
case $x in
 [Yy]) exec mailx;;
esac
