#!/bin/dash

# $Id: archive.sh 13098 2013-07-14 12:41:33Z ed $
# archives maildir into mbox. processes entire directories
# alter for file loops to for i in $( find ... ) if you wish to archive
# partial directories

. $HOME/services/scripts/paths.sh

YYYYMMDD=$( $DATE +%Y%m%d )
YYYYMMDD=20130603

for dir in $( $FIND . -type d -name 'new' | sed -e 's%/new$%%g' -e 's%./%%g' )
do
	(
	for file in $dir/new/* $dir/tmp/*; do
		if ! test -f $file
		then
			continue
		fi
		
		FLAGGED=
		REPLIED=
		echo $file | $GREP -E ',\w*R\w*$' >/dev/null 2>&1;
		if test $? = 0
		then
			REPLIED="A"
		fi

		echo $file | $GREP -E ',\w*F\w*$' >/dev/null 2>&1;
		if test $? = 0
		then
			FLAGGED="F"
		fi

		$FORMAIL -I "X-Status: ${REPLIED}${FLAGGED}" -I Status: < "$file" && echo $file >> ${dir}_list_$YYYYMMDD
	done
	for file in $dir/cur/*; do
		if ! test -f $file
		then
			continue
		fi

		FLAGGED=
		REPLIED=
		SEEN=
		echo $file | $GREP -E ',\w*R\w*$' >/dev/null 2>&1;
		if test $? = 0
		then
			REPLIED="A"
		fi

		echo $file | $GREP -E ',\w*S\w*$' >/dev/null 2>&1;
		if test $? = 0
		then
			SEEN="R"
		fi

		echo $file | $GREP -E ',\w*F\w*$' >/dev/null 2>&1;
		if test $? = 0
		then
			FLAGGED="F"
		fi
		$FORMAIL -I "X-Status: ${REPLIED}${FLAGGED}" -a "Status: ${SEEN}O" < "$file" && echo $file >> ${dir}_list_$YYYYMMDD
		done
	) | $IONICE -c 3 $NICE -n 19 $GZIP -9 > ${dir}_${YYYYMMDD}.gz
done
