summaryrefslogtreecommitdiffstats
path: root/debian/open-infrastructure-container-tools.postinst
diff options
context:
space:
mode:
Diffstat (limited to 'debian/open-infrastructure-container-tools.postinst')
-rwxr-xr-xdebian/open-infrastructure-container-tools.postinst132
1 files changed, 132 insertions, 0 deletions
diff --git a/debian/open-infrastructure-container-tools.postinst b/debian/open-infrastructure-container-tools.postinst
new file mode 100755
index 0000000..cad8ce0
--- /dev/null
+++ b/debian/open-infrastructure-container-tools.postinst
@@ -0,0 +1,132 @@
+#!/bin/sh
+
+set -e
+
+CONFFILE="/etc/compute-tools/container.conf"
+
+Install ()
+{
+ DEFAULT="${1}"
+ TARGET="${2}"
+
+ mkdir -p "${DEFAULT}"
+ mkdir -p "${TARGET}"
+
+ if [ "${TARGET}" != "${DEFAULT}" ]
+ then
+ if [ -h "${DEFAULT}" ]
+ then
+ rm -f "${DEFAULT}"
+ ln -s "${TARGET}" "${DEFAULT}"
+ else
+ if [ -e "${DEFAULT}" ] && [ -z "$(ls -A ${DEFAULT})" ]
+ then
+ rmdir "${DEFAULT}"
+ ln -s "${TARGET}" "${DEFAULT}"
+ fi
+ fi
+ fi
+
+ if ! dpkg-statoverride --list "${DEFAULT}" > /dev/null 2>&1 &&
+ ! dpkg-statoverride --list "${TARGET}" > /dev/null 2>&1
+ then
+ chmod 0700 "${TARGET}"
+ chown root:root "${TARGET}"
+
+ chmod 0700 "${DEFAULT}"
+ chown root:root "${DEFAULT}"
+ fi
+}
+
+case "${1}" in
+ configure)
+ # build-scripts
+ update-alternatives --quiet --install /usr/share/compute-tools/build-scripts/default container_build-script /usr/share/compute-tools/build-scripts/mmdebstrap 1000
+ update-alternatives --quiet --install /usr/share/compute-tools/build-scripts/default container_build-script /usr/share/compute-tools/build-scripts/debootstrap 2000
+ update-alternatives --quiet --install /usr/share/compute-tools/build-scripts/default container_build-script /usr/share/compute-tools/build-scripts/progress-linux 3000
+ update-alternatives --quiet --install /usr/share/compute-tools/build-scripts/default container_build-script /usr/share/compute-tools/build-scripts/debian 4000
+
+ # get-scripts
+ update-alternatives --quiet --install /usr/share/compute-tools/get-scripts/default container_get-script /usr/share/compute-tools/get-scripts/curl 1000
+
+ . /usr/share/debconf/confmodule
+
+ db_get open-infrastructure-container-tools/machines
+ MACHINES="${RET:-/var/lib/machines}" # string (w/o empty)
+
+ db_get open-infrastructure-container-tools/config
+ CONFIG="${RET:-/etc/compute-tools/config}" # string (w/o empty)
+
+ db_get open-infrastructure-container-tools/debconf
+ DEBCONF="${RET:-/etc/compute-tools/debconf}" # string (w/o empty)
+
+ db_get open-infrastructure-container-tools/hooks
+ HOOKS="${RET:-/etc/compute-tools/hooks}" # string (w/o empty)
+
+ db_get open-infrastructure-container-tools/keys
+ KEYS="${RET:-/etc/compute-tools/keys}" # string (w/o empty)
+
+ db_get open-infrastructure-container-tools/cache
+ CACHE="${RET:-/var/cache/container}" # string (w/o empty)
+
+ db_get open-infrastructure-container-tools/build-script
+ SCRIPT="${RET:-debian}" # string (w/o empty)
+
+ db_get open-infrastructure-container-tools/irc
+ IRK_TARGETS="${RET}" # string (w/ empty)
+
+ db_stop
+
+ Install "/var/lib/machines" "${MACHINES}"
+ Install "/etc/compute-tools/config" "${CONFIG}"
+ Install "/etc/compute-tools/debconf" "${DEBCONF}"
+ Install "/etc/compute-tools/hooks" "${HOOKS}"
+ Install "/etc/compute-tools/keys" "${KEYS}"
+ Install "/var/cache/container" "${CACHE}"
+
+ update-alternatives --quiet --set container_build-script "/usr/share/compute-tools/build-scripts/${SCRIPT}"
+
+ if [ ! -e "${CONFFILE}" ]
+ then
+
+cat > "${CONFFILE}" << EOF
+# ${CONFFILE}
+
+IRK_TARGETS="${IRK_TARGETS}"
+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 "${IRK_TARGETS}" || \
+ grep -Eq '^ *IRK_TARGETS=' "${CONFFILE}" || \
+ echo "IRK_TARGETS=" >> "${CONFFILE}"
+
+ sed -e "s|^ *IRK_TARGETS=.*|IRK_TARGETS=\"${IRK_TARGETS}\"|" \
+ < "${CONFFILE}" > "${CONFFILE}.tmp"
+
+ mv -f "${CONFFILE}.tmp" "${CONFFILE}"
+
+ if [ -x "$(which sysctl)" ]
+ then
+ sysctl -q -p /etc/sysctl.d/zz-container.conf
+ fi
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`${1}'" >&2
+ exit 1
+ ;;
+esac
+
+#DEBHELPER#
+
+exit 0