#!/bin/sh

set -e

frontend=noninteractive

eval set -- $(getopt -o "f:" -n casper-reconfigure -- "$@")

while true; do
    case "$1" in
        -f)
            frontend="$2"
            shift 2
            ;;
        --)
            shift
            break
            ;;
        *)
            echo "Internal error!" 
            exit 1
            ;;
    esac
done

package="$1"
version=$(dpkg-query -W --showformat='${Version}' "$package" 2>/dev/null) || version=""

if [ -z "$version" ]; then
    echo "$0: package '$package' is not installed"
    exit 0
fi

case "$frontend" in
    passthrough)
        env -u DEBIAN_HAS_FRONTEND -u DEBIAN_FRONTEND \
            -u DEBCONF_REDIR -u DEBCONF_OLD_FD_BASE \
            DEBCONF_READFD=0 DEBCONF_WRITEFD=3 \
            dpkg-reconfigure -fpassthrough "$package"
        ;;
    noninteractive)
        env -u DEBIAN_HAS_FRONTEND -u DEBIAN_FRONTEND \
            -u DEBCONF_REDIR -u DEBCONF_OLD_FD_BASE \
            dpkg-reconfigure -fnoninteractive "$package"
        ;;
    *)
        echo "Unknown frontend: $frontend"
        exit 1
        ;;
esac

exit 0
