#!/bin/sh
set -e

fail () { echo >&2 "$*"; exit 16; }

if [ "$#" != 1 ]; then
	fail 'usage: sauce9-convert <directory>'
fi

echo "Checking for SAUCE databases in $1 ..."

cd "$1"
umask 022

rm -f tmp-cdb.*

for db in 	site-annoy site-seen site-list 		\
		addr-seen addr-list
do
	printf " %s " "cdb.$db"
	todelete=`find . -maxdepth 1 				\
		\( -name 'db.*.*' -o -name 'cdb.*' \) 		\
		-mtime +28 -type f -print`
	if [ "x$todelete" != x ]; then
		echo -n "("deleting stale $todelete") "
		rm -- $todelete
	fi
	if test -f cdb.$db.main; then
		echo " new database exists, not converting."
		continue
	fi
	inputs=`find . -maxdepth 1 					\
		\( -name "db.$db.main" -o -name "db.$db.log" \) 	\
	 	-print`
	if [ "x$inputs" != x ]; then
		echo -n "("reading $inputs") "
	else
		printf "(no existing data) "
	fi
	${SAUCE_CONVERTDB:-/usr/share/sauce/convertdb} \
		tmp-cdb.$db 0 $inputs >/dev/null
	printf " done"
	for g in lock main jrn cdb; do
		chown mail.mail tmp-cdb.$db.$g
		mv -f tmp-cdb.$db.$g cdb.$db.$g
	done
	echo .
done
