diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2021-09-04 16:48:38 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2021-09-04 17:01:37 +0000 |
commit | 2ca157f04bcf867ea945eaaefcb11cbe071f58ed (patch) | |
tree | e909eda9ea0b9d45486f1a9fffd20e67c8a9ac66 /debian/open-infrastructure-dehydrated-tools.postinst | |
parent | Correcting typo in debconf templates for dehydrated/auto-cleanup field. (diff) | |
download | open-infrastructure-service-tools-2ca157f04bcf867ea945eaaefcb11cbe071f58ed.tar.xz open-infrastructure-service-tools-2ca157f04bcf867ea945eaaefcb11cbe071f58ed.zip |
Reworking dehydrated debconf handling completely.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'debian/open-infrastructure-dehydrated-tools.postinst')
-rwxr-xr-x | debian/open-infrastructure-dehydrated-tools.postinst | 116 |
1 files changed, 69 insertions, 47 deletions
diff --git a/debian/open-infrastructure-dehydrated-tools.postinst b/debian/open-infrastructure-dehydrated-tools.postinst index 5734044..2ddde24 100755 --- a/debian/open-infrastructure-dehydrated-tools.postinst +++ b/debian/open-infrastructure-dehydrated-tools.postinst @@ -2,36 +2,9 @@ set -e -Config () -{ - FILE="${1}" - KEY="${2}" - VALUE="${3}" - - TMPFILE="$(mktemp --dry-run ${FILE}.XXXX)" - - if [ ! -e "${FILE}" ] - then - -cat > "${FILE}" << EOF -# ${FILE} - -${KEY}="${VALUE}" -EOF - - fi - - cp -a -f "${FILE}" "${TMPFILE}" +. /usr/share/debconf/confmodule - test -z "${VALUE}" || \ - grep -Eq "^ *$(echo ${KEY})=" "${FILE}" || \ - echo "${KEY}=" >> "$FILE}" - - sed -e "s|^ *\($(echo ${KEY})\)=.*|\1=\"${VALUE}\"|" \ - < "${FILE}" > "${TMPFILE}" - - mv -f "${TMPFILE}" "${FILE}" -} +CONFFILE="/etc/dehydrated/conf.d/config.sh" Install () { @@ -81,8 +54,6 @@ Install () case "${1}" in configure) - . /usr/share/debconf/confmodule - db_get open-infrastructure-dehydrated-tools/ca CA="${RET}" # select @@ -152,12 +123,68 @@ case "${1}" in ;; esac - Config /etc/dehydrated/conf.d/ca.sh CA ${CA} - Config /etc/dehydrated/conf.d/cleanup.sh AUTO_CLEANUP ${AUTO_CLEANUP} - Config /etc/dehydrated/conf.d/challenge.sh CHALLENGETYPE ${CHALLENGETYPE} - Config /etc/dehydrated/conf.d/contact.sh CONTACT_EMAIL ${CONTACT_EMAIL} - Config /etc/dehydrated/conf.d/ocsp.sh OCSP_FETCH ${OCSP_FETCH} - Config /etc/dehydrated/conf.d/ocsp.sh OCSP_MUST_STAPLE ${OCSP_MUST_STAPLE} + HOOK="/usr/bin/dehydrated-hook.d" + + if [ ! -e "${CONFFILE}" ] + then + +cat > "${CONFFILE}" << EOF +# /etc/dehydrated/conf.d/config.sh + +AUTO_CLEANUP="${AUTO_CLEANUP}" +CA="${CA}" +CHALLENGETYPE="${CHALLENGETYPE}" +CONTACT_EMAIL="${CONTACT_EMAIL}" +HOOK="${HOOK}" +OCSP_FETCH="${OCSP_FETCH}" +OCSP_MUST_STAPLE="${OCSP_MUST_STAPLE}" +EOF + + fi + + cp -a -f "${CONFFILE}" "${CONFFILE}.tmp" + + # If the admin deleted or commented some variables but then set + # them via debconf, (re-)add them to the config file. + + test -z "${AUTO_CLEANUP}" || \ + grep -Eq '^ *AUTO_CLEANUP=' "${CONFFILE}" || \ + echo "AUTO_CLEANUP=" >> "${CONFFILE}" + + test -z "${CA}" || \ + grep -Eq '^ *CA=' "${CONFFILE}" || \ + echo "CA=" >> "${CONFFILE}" + + test -z "${CHALLENGETYPE}" || \ + grep -Eq '^ *CHALLENGETYPE=' "${CONFFILE}" || \ + echo "CHALLENGETYPE=" >> "${CONFFILE}" + + test -z "${CONTACT_EMAIL}" || \ + grep -Eq '^ *CONTACT_EMAIL=' "${CONFFILE}" || \ + echo "CONTACT_EMAIL=" >> "${CONFFILE}" + + test -z "${HOOK}" || \ + grep -Eq '^ *HOOK=' "${CONFFILE}" || \ + echo "HOOK=" >> "${CONFFILE}" + + test -z "${OCSP_FETCH}" || \ + grep -Eq '^ *OCSP_FETCH=' "${CONFFILE}" || \ + echo "OCSP_FETCH=" >> "${CONFFILE}" + + test -z "${OCSP_MUST_STAPLE}" || \ + grep -Eq '^ *OCSP_MUST_STAPLE=' "${CONFFILE}" || \ + echo "OCSP_MUST_STAPLE=" >> "${CONFFILE}" + + sed -e "s|^ *AUTO_CLEANUP=.*|AUTO_CLEANUP=\"${AUTO_CLEANUP}\"|" \ + -e "s|^ *CA=.*|CA=\"${CA}\"|" \ + -e "s|^ *CHALLENGETYPE=.*|CHALLENGETYPE=\"${CHALLENGETYPE}\"|" \ + -e "s|^ *CONTACT_EMAIL=.*|CONTACT_EMAIL=\"${CONTACT_EMAIL}\"|" \ + -e "s|^ *HOOK=.*|HOOK=\"${HOOK}\"|" \ + -e "s|^ *OCSP_FETCH=.*|OCSP_FETCH=\"${OCSP_FETCH}\"|" \ + -e "s|^ *OCSP_MUST_STAPLE=.*|OCSP_MUST_STAPLE=\"${OCSP_MUST_STAPLE}\"|" \ + < "${CONFFILE}" > "${CONFFILE}.tmp" + + mv -f "${CONFFILE}.tmp" "${CONFFILE}" for HOOK in $(cd /usr/share/dehydrated/hooks && find -maxdepth 1 -not -type d -printf '%P\n' | sort) do @@ -169,8 +196,6 @@ case "${1}" in if [ -n "${HOOKS}" ] then - Config /etc/dehydrated/conf.d/hook.sh HOOK /usr/bin/dehydrated-hook.d - HOOKS="$(echo ${HOOKS} | sed -e 's|,| |g')" if echo "${HOOKS}" | grep -qs "ALL" @@ -200,14 +225,11 @@ case "${1}" in Install "${BASEDIR}" "${NEW_BASEDIR}" fi - if ! ls /var/lib/dehydrated/accounts/*/account_key.pem > /dev/null 2>&1 - then - case "${REGISTER}" in - true) - dehydrated --register --accept-terms - ;; - esac - fi + case "${REGISTER}" in + true) + dehydrated --register --accept-terms + ;; + esac ;; abort-upgrade|abort-remove|abort-deconfigure) |