From 9207107ef3db0d52880fd6cce750f5c8182f5601 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 5 Dec 2016 09:06:42 +0100 Subject: Enabling pre and post hooks in container create scripts. Signed-off-by: Daniel Baumann --- share/scripts/curl | 19 +++++++++++++++++++ share/scripts/debconf | 19 +++++++++++++++++++ share/scripts/debootstrap | 19 +++++++++++++++++++ 3 files changed, 57 insertions(+) diff --git a/share/scripts/curl b/share/scripts/curl index 6b7d6a0..69badd9 100755 --- a/share/scripts/curl +++ b/share/scripts/curl @@ -20,6 +20,7 @@ set -e SCRIPT="${0}" +HOOKS="/etc/container-tools/hooks" MACHINES="/var/lib/machines" CACHE="/var/cache/container-tools/images" @@ -132,6 +133,15 @@ PASSWORD="${PASSWORD:-$(dd if=/dev/urandom bs=12 count=1 2> /dev/null | base64)} VERSION="$(container version)" +# Pre hooks +for FILE in "${HOOKS}/pre-${SCRIPT}".* "${HOOKS}/${NAME}.pre-${SCRIPT}" +do + if [ -x "${FILE}" ] + then + "${FILE}" + fi +done + # Run # FIXME: Show available image directories on server @@ -227,3 +237,12 @@ case "${CLEAN}" in rm -f "${CACHE}/${IMAGE}.sha512" ;; esac + +# Post hooks +for FILE in "${HOOKS}/post-${SCRIPT}".* "${HOOKS}/${NAME}.post-${SCRIPT}" +do + if [ -x "${FILE}" ] + then + "${FILE}" + fi +done diff --git a/share/scripts/debconf b/share/scripts/debconf index cde66cb..72e9c85 100755 --- a/share/scripts/debconf +++ b/share/scripts/debconf @@ -21,6 +21,7 @@ set -e SCRIPT="${0}" CONFIG="/etc/container-tools/config" +HOOKS="/etc/container-tools/hooks" MACHINES="/var/lib/machines" Parameters () @@ -964,6 +965,15 @@ Debconf export NAME +# Pre hooks +for FILE in "${HOOKS}/pre-${SCRIPT}".* "${HOOKS}/${NAME}.pre-${SCRIPT}" +do + if [ -x "${FILE}" ] + then + "${FILE}" + fi +done + # Run debconf parts for SCRIPT in /usr/share/container-tools/scripts/debconf.d/* do @@ -1077,3 +1087,12 @@ fi # remove debconf temporary files rm --preserve-root --one-file-system -rf "${DEBCONF_TMPDIR}" rmdir --ignore-fail-on-non-empty /tmp/container-tools 2>&1 || true + +# Post hooks +for FILE in "${HOOKS}/post-${SCRIPT}".* "${HOOKS}/${NAME}.post-${SCRIPT}" +do + if [ -x "${FILE}" ] + then + "${FILE}" + fi +done diff --git a/share/scripts/debootstrap b/share/scripts/debootstrap index 9c76ba0..2da573d 100755 --- a/share/scripts/debootstrap +++ b/share/scripts/debootstrap @@ -20,6 +20,7 @@ set -e SCRIPT="${0}" +HOOKS="/etc/container-tools/hooks" MACHINES="/var/lib/machines" Parameters () @@ -137,6 +138,15 @@ case "${MIRROR}" in ;; esac +# Pre hooks +for FILE in "${HOOKS}/pre-${SCRIPT}".* "${HOOKS}/${NAME}.pre-${SCRIPT}" +do + if [ -x "${FILE}" ] + then + "${FILE}" + fi +done + mkdir -p "${MACHINES}" debootstrap --arch=${ARCHITECTURE} --include=${INCLUDE} ${DISTRIBUTION} ${MACHINES}/${NAME} ${MIRROR} @@ -148,3 +158,12 @@ echo "${NAME}" > "${MACHINES}/${NAME}/etc/hostname" # Setting root password echo root:${PASSWORD} | chroot "${MACHINES}/${NAME}" chpasswd echo "${NAME}: root password set to '${PASSWORD}'." + +# Post hooks +for FILE in "${HOOKS}/post-${SCRIPT}".* "${HOOKS}/${NAME}.post-${SCRIPT}" +do + if [ -x "${FILE}" ] + then + "${FILE}" + fi +done -- cgit v1.2.3