summaryrefslogtreecommitdiffstats
path: root/debian/open-infrastructure-dehydrated-tools.postinst
diff options
context:
space:
mode:
Diffstat (limited to 'debian/open-infrastructure-dehydrated-tools.postinst')
-rwxr-xr-xdebian/open-infrastructure-dehydrated-tools.postinst116
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)