1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
#!/bin/sh
set -e
. /usr/share/debconf/confmodule
ask_for_password() {
while :; do
RET=""
db_input high kea-ctrl-agent/kea_api_password || true
db_go || true
db_get kea-ctrl-agent/kea_api_password
if [ -z "$RET" ]; then
# empty passwords result in no action
break
fi
API_PASSWORD="$RET"
db_input high kea-ctrl-agent/kea_api_password_again || true
db_go || true
db_get kea-ctrl-agent/kea_api_password_again
if [ "$RET" = "$API_PASSWORD" ]; then
API_PASSWORD=""
break
fi
db_fset kea-ctrl-agent/password_mismatch seen false
db_input critical kea-ctrl-agent/password_mismatch || true
db_set kea-ctrl-agent/kea_api_password ""
db_set kea-ctrl-agent/kea_api_password_again ""
db_go || true
done
}
gen_random_pw() {
head -c 15 /dev/urandom | base64 | tr -d '[:space:]'
}
RET=""
choice=""
reconfigure=""
if [ "${1}" = "configure" ] || [ "${1}" = "reconfigure" ]; then
if [ "${1}" = "reconfigure" ] || [ -n "${DEBCONF_RECONFIGURE}" ]; then
reconfigure="yes"
fi
# only ask questions on:
# - reconfigure
# - fresh install
# - upgrade from pre-debconf package (lt: empty version is "earlier", so
# this covers the fresh install case too)
if [ -n "${reconfigure}" ] || dpkg --compare-versions "$2" lt "2.2.0-5ubuntu2~"; then
db_input high kea-ctrl-agent/make_a_choice || true
db_go || true
db_get kea-ctrl-agent/make_a_choice
choice="${RET}"
case "${choice}" in
unconfigured)
# nothing to do
;;
configured_password)
ask_for_password
;;
configured_random_password)
db_set kea-ctrl-agent/kea_api_password "$(gen_random_pw)"
;;
*)
# shouldn't happen, so it's the same as "unconfigured" above
;;
esac
fi
fi
|