#!/bin/sh
set -e

. /usr/share/debconf/confmodule
db_capb backup

parse_default() {
    case `sed -n 's/^run_watchdog=//p' "$@"` in
    0)  db_set watchdog/run false;;
    1)  db_set watchdog/run true;;
    *)  return 1;;
    esac
    db_set watchdog/module `sed -n 's/^watchdog_module="\(.*\)"/\1/p' "$@"`
}

if dpkg --compare-versions "$2" le-nl 5.2.4-4
then
    # Upgrade quietly from pre-debconf days (<= 5.2.4-4).
    if parse_default /etc/init.d/watchdog; then
	db_fset watchdog/run seen true
	db_fset watchdog/module seen true
    fi
elif [ -f /etc/default/watchdog ]
then
    # Load previous value (may have been changed manually).
    parse_default /etc/default/watchdog || true
fi

db_input medium watchdog/module || true
db_go

# Use a state machine to allow jumping back.
state=1
while true
do
    case $state in
    1)
	db_input medium watchdog/run || true
	;;
    2)
	db_get watchdog/run
	[ "$RET" = false ] || db_input medium watchdog/restart || true
	;;
    *)
	break
	;;
    esac

    if db_go
    then
	state=$(($state + 1))
    else
	state=$(($state - 1))
    fi
done

# Check if the user backed up from the first question.
[ $state -gt 0 ] || exit 10
