#!/usr/bin/bash

set -e

. /usr/share/grommunio-pkg-bits/scripts/setup-include.sh

DISTRO_FAMILY=$(get_distro_family)

reset_debconf_db_usage () {
	local BLAH="
  $PROGNAME: [-hf] [-p package-name] [question question question...]

"
	echo -n "$BLAH" 1>&2
}

reset_debconf_db_vusage () {
	local BLAH="
         -f        force reset of debconf
         -h        print this help
         -p        package to reset debconf setting(s)
"
	reset_debconf_db_usage
	echo -n "$BLAH" 1>&2
}

reset_debconf_db () {
	local FORCE=0
	local DEBCONF_PACKAGE='grommunio-pkg-bits'
	local QUESTIONS=''
	OPTIND=1
	while getopts fhp: F; do
		case "$F" in
		h)
			reset_debconf_db_vusage
			exit 2
			;;
		f)
			FORCE=1
			;;
		p)
			DEBCONF_PACKAGE="$OPTARG"
			;;
		\?)
			reset_debconf_db_usage
			exit 2
			;;
		esac
	done
	shift $(( $OPTIND -1 ))

	QUESTIONS="$@"

	check_with_user $FORCE "Reset all debconf settings for '${DEBCONF_PACKAGE}' package?"

	[ -z "$QUESTIONS" ] && QUESTIONS=$(debconf-show grommunio-pkg-bits | perl -pe 's#^[* ]+(\S+):.*$#\1#')
	if [ ! -f /usr/share/debconf/confmodule ]; then
		echo "${PROGNAME}: You must have the systems debconf package installed."
		exit 2
	fi
	local CMDS=''
	local Q=''
	for Q in $QUESTIONS; do
		CMDS="${CMDS}RESET ${Q}\nFSET ${Q} seen false\n"
	done
	if local OUTPUT=$(echo -ne "$CMDS" | debconf-communicate "$DEBCONF_PACKAGE" 2>&1 | grep -v '^0'); then
		echo "$OUTPUT" | uniq 1>&2
		exit 1
	fi
	exit 0
}

case "$PROGNAME" in 
	reset-debconf-db)
		check_if_root
		reset_debconf_db "$@"
		;;
esac
