#!/bin/sh
#
# 	postrm -- Post removal script for GoAhead
#
#	Copyright (c) Embedthis Software LLC, 2003-2014. All Rights Reserved.
#

ME_PRODUCT=${settings.product}
ME_NAME="${settings.title}"
ME_CFG_PREFIX="${prefixes.config}"
ME_LIB_PREFIX="${prefixes.lib}"

remove() {
	local cdir=`pwd`

	if [ -x $ME_CFG_PREFIX ] ; then
		cd $ME_CFG_PREFIX
		removeIntermediateFiles access.log error.log '*.log.old' .dummy $ME_PRODUCT.conf .*.log make.log
		cleanDir
		cd $cdir 
		rmdir $ME_CFG_PREFIX 2>/dev/null || true
	fi
	if [ -x $ME_LIB_PREFIX ] ; then
		cd $ME_LIB_PREFIX
		removeIntermediateFiles access.log error.log '*.log.old' .dummy $ME_PRODUCT.conf .*.log make.log
		cleanDir
		cd $cdir 
		rmdir $ME_LIB_PREFIX 2>/dev/null || true
	fi
}

purge() {
	local cdir=`pwd`
	remove
	if [ -x $ME_CFG_PREFIX ] ; then
		cd $ME_CFG_PREFIX
		# removeIntermediateFiles $ME_PRODUCT.conf auth.txt route.txt server.crt server.key server.key.pem users.db
		cleanDir
		cd $cdir 
		rmdir $ME_CFG_PREFIX 2>/dev/null || true
	fi
}

#
#	Cleanup empty directories. Usage: cleanDir directory
#
cleanDir() {
	local count f

	echo "Cleaning `pwd` ..."
	if [ `pwd` = "/" ] ; then
		echo "Configuration error: clean directory was '/'"
		return
	fi
	find . -type d -print | sort -r | grep -v '^\.$' | while read d
	do
		count=`ls "$d" | wc -l | sed -e 's/ *//'`
		[ "$count" = "0" ] && rmdir "$d"
		if [ "$count" != "0" ] ; then
			f=`echo "$d" | sed -e 's/\.\///'`
			echo "Directory `pwd`/${f}, still has user data"
		fi
	done 
}

#
#	Cleanup intermediate files
#
removeIntermediateFiles() {

	find `pwd` -type d -print | while read d
	do
		before=`pwd`
		cd "${d}"
		eval rm -f $*
		cd "${before}"
	done
}

#
#	Main
#
cd /
action=$1
case $action in
	remove)					# when new
		remove
		;;
	purge)					# when new
		purge
		;;
	failed-upgrade)			# when new
		oldVersion=$2
		;;
	abort-upgrade)			# when new
		oldVersion=$2
		;;
	upgrade)				# when old
		newVersion=$2
		;;
	disappear)				# when disappearing
		# disappear overwriter overwriter-version
		;;
esac

echo
echo "$ME_NAME $action successful"
exit 0
