#!/usr/bin/env bash

function printUsage {
	echo "Usage: $0 [--prefix=/usr/local]"
}

pkgName=starcal3


if ! options=$(getopt -o 'v' --long 'prefix:,verbose' -n "$0" -- "$@") ; then
	echo "Error parsing arguments and flags" >&2
	printUsage
	exit 1
fi
eval set -- "$options" ## Note the quotes around $options are essential!
options=""


prefix=""
verbose=""

while true ; do
	case "$1" in
		--prefix) prefix="$2" ; shift 2 ;;
		-v|--verbose) verbose="yes" ; shift 1 ;;
		--) shift ; break ;;
		*) echo "Internal error!" ; exit 1 ;;
	esac
done

if [ -n "$1" ] ; then ## extra arguments
	echo "Too many arguments" >&2
	printUsage
	exit 1
fi

if [ -z "$prefix" ] ; then ## prefix is empty (not been set)
	prefix=/usr/local
	for p in /usr/local /usr ; do
		if [ -d $p/share/$pkgName ] ; then
			prefix=$p
			break
		fi
	done
else
	n=${#prefix}
	if [ "${prefix:n-1:1}" = / ] ; then
		prefix=${prefix::-1}
	fi
fi

shareDir="${prefix}/share"

if [ -z $pkgName ] ; then ## do not f*** the system if pkgName was empty amiss!
	echo "Internal Error! pkgName=''"
	exit 1
fi

##================== Starting to remove files =====================

if [ -n "$verbose" ] ; then ## no output (note that quotation around $verbose is needed)
	RM="rm -Rfv"
else
	RM="rm -Rf"
fi


if [ -d "${shareDir}/$pkgName" ] ; then
	$RM "${shareDir}/$pkgName"
fi

if [ -d "${shareDir}/doc/$pkgName" ] ; then
	$RM "${shareDir}/doc/$pkgName"
fi

## what about the /etc/$pkgName and /var/log/$pkgName ## FIXME

$RM /etc/init.d/*${pkgName}d* /etc/rc.d/*${pkgName}d* 2>/dev/null ## FIXME
$RM "$shareDir/$pkgName/icons/hicolor/"*"/apps/$pkgName.png" 2>/dev/null
$RM "$prefix/bin/$pkgName" 2>/dev/null
$RM "$shareDir/applications/$pkgName.desktop" 2>/dev/null
$RM "$prefix/share/locale/"*"/LC_MESSAGES/$pkgName.mo" 2>/dev/null


