From ef51d0c8f7f9fcfa8faf0fa800b4a865517666a2 Mon Sep 17 00:00:00 2001 From: Christian Hofstaedtler Date: Sun, 11 Dec 2011 19:18:55 +0100 Subject: [PATCH] Expose (selected) config vars to fai scripts --- etc/grml/fai/config/hooks/updatebase.GRMLBASE | 5 +---- etc/grml/fai/config/scripts/GRMLBASE/05-hostname | 5 +---- etc/grml/fai/config/scripts/GRMLBASE/15-initsetup | 6 +----- etc/grml/fai/config/scripts/GRMLBASE/20-sudo | 6 +----- etc/grml/fai/config/scripts/GRMLBASE/21-usersetup | 6 +----- etc/grml/fai/config/scripts/GRMLBASE/30-fstab | 6 +----- etc/grml/fai/config/scripts/GRMLBASE/34-hosts | 6 +----- grml-live | 13 +++++++++++-- 8 files changed, 18 insertions(+), 35 deletions(-) diff --git a/etc/grml/fai/config/hooks/updatebase.GRMLBASE b/etc/grml/fai/config/hooks/updatebase.GRMLBASE index 7a79cbe..9e0913a 100755 --- a/etc/grml/fai/config/hooks/updatebase.GRMLBASE +++ b/etc/grml/fai/config/hooks/updatebase.GRMLBASE @@ -8,14 +8,11 @@ set -u set -e +. "$GRML_LIVE_CONFIG" # visualize chroot inside zsh: echo grml_chroot > $target/etc/debian_chroot -HOSTNAME='' -[ -r /etc/grml/grml-live.conf ] && . /etc/grml/grml-live.conf -[ -n "$GRML_LIVE_LOCAL_CONFIG" ] && . "$GRML_LIVE_LOCAL_CONFIG" -[ -n "$HOSTNAME" ] || HOSTNAME=grml echo "$HOSTNAME" > $target/etc/hostname if [ -n "${APT_PROXY:-}" ] ; then diff --git a/etc/grml/fai/config/scripts/GRMLBASE/05-hostname b/etc/grml/fai/config/scripts/GRMLBASE/05-hostname index ce91001..0d52914 100755 --- a/etc/grml/fai/config/scripts/GRMLBASE/05-hostname +++ b/etc/grml/fai/config/scripts/GRMLBASE/05-hostname @@ -9,10 +9,7 @@ set -u set -e -HOSTNAME='' -[ -r /etc/grml/grml-live.conf ] && . /etc/grml/grml-live.conf -[ -n "$GRML_LIVE_LOCAL_CONFIG" ] && . "$GRML_LIVE_LOCAL_CONFIG" -[ -n "$HOSTNAME" ] || HOSTNAME=grml +. "$GRML_LIVE_CONFIG" # the hostname of the chroot usually isn't the same as the one for the live-system BUILD_HOSTNAME="$($ROOTCMD hostname)" diff --git a/etc/grml/fai/config/scripts/GRMLBASE/15-initsetup b/etc/grml/fai/config/scripts/GRMLBASE/15-initsetup index d7ad56e..277dcb0 100755 --- a/etc/grml/fai/config/scripts/GRMLBASE/15-initsetup +++ b/etc/grml/fai/config/scripts/GRMLBASE/15-initsetup @@ -8,11 +8,7 @@ set -u set -e - -USERNAME='' -[ -r /etc/grml/grml-live.conf ] && . /etc/grml/grml-live.conf -[ -n "$GRML_LIVE_LOCAL_CONFIG" ] && . "$GRML_LIVE_LOCAL_CONFIG" -[ -n "$USERNAME" ] || USERNAME=grml +. "$GRML_LIVE_CONFIG" if ! [ -r $target/etc/runlevel.conf ] ; then echo 'Warning: /etc/runlevel.conf does not exist...' diff --git a/etc/grml/fai/config/scripts/GRMLBASE/20-sudo b/etc/grml/fai/config/scripts/GRMLBASE/20-sudo index be6d242..49fccff 100755 --- a/etc/grml/fai/config/scripts/GRMLBASE/20-sudo +++ b/etc/grml/fai/config/scripts/GRMLBASE/20-sudo @@ -8,11 +8,7 @@ set -u set -e - -USERNAME='' -[ -r /etc/grml/grml-live.conf ] && . /etc/grml/grml-live.conf -[ -n "$GRML_LIVE_LOCAL_CONFIG" ] && . "$GRML_LIVE_LOCAL_CONFIG" -[ -n "$USERNAME" ] || USERNAME=grml +. "$GRML_LIVE_CONFIG" fcopy -v /etc/sudoers sed -i "s/\$USERNAME/$USERNAME/" $target/etc/sudoers diff --git a/etc/grml/fai/config/scripts/GRMLBASE/21-usersetup b/etc/grml/fai/config/scripts/GRMLBASE/21-usersetup index 29cf07e..ac63a8d 100755 --- a/etc/grml/fai/config/scripts/GRMLBASE/21-usersetup +++ b/etc/grml/fai/config/scripts/GRMLBASE/21-usersetup @@ -8,11 +8,7 @@ set -u set -e - -USERNAME='' -[ -r /etc/grml/grml-live.conf ] && . /etc/grml/grml-live.conf -[ -n "$GRML_LIVE_LOCAL_CONFIG" ] && . "$GRML_LIVE_LOCAL_CONFIG" -[ -n "$USERNAME" ] || USERNAME=grml +. "$GRML_LIVE_CONFIG" if grep -q "$USERNAME:x:1000" $target/etc/group ; then echo "group $USERNAME exists already, skipping" diff --git a/etc/grml/fai/config/scripts/GRMLBASE/30-fstab b/etc/grml/fai/config/scripts/GRMLBASE/30-fstab index fd52cf7..c316ec6 100755 --- a/etc/grml/fai/config/scripts/GRMLBASE/30-fstab +++ b/etc/grml/fai/config/scripts/GRMLBASE/30-fstab @@ -8,11 +8,7 @@ set -u set -e - -USERNAME='' -[ -r /etc/grml/grml-live.conf ] && . /etc/grml/grml-live.conf -[ -n "$GRML_LIVE_LOCAL_CONFIG" ] && . "$GRML_LIVE_LOCAL_CONFIG" -[ -n "$USERNAME" ] || USERNAME=grml +. "$GRML_LIVE_CONFIG" fcopy -v /etc/fstab sed -i "s/uid=USERNAME,gid=USERNAME/uid=$USERNAME,gid=$USERNAME/" $target/etc/fstab diff --git a/etc/grml/fai/config/scripts/GRMLBASE/34-hosts b/etc/grml/fai/config/scripts/GRMLBASE/34-hosts index 0b02c35..a08c3b9 100755 --- a/etc/grml/fai/config/scripts/GRMLBASE/34-hosts +++ b/etc/grml/fai/config/scripts/GRMLBASE/34-hosts @@ -8,11 +8,7 @@ set -u set -e - -HOSTNAME='' -[ -r /etc/grml/grml-live.conf ] && . /etc/grml/grml-live.conf -[ -n "$GRML_LIVE_LOCAL_CONFIG" ] && . "$GRML_LIVE_LOCAL_CONFIG" -[ -n "$HOSTNAME" ] || HOSTNAME=grml +. "$GRML_LIVE_CONFIG" fcopy -v /etc/hosts diff --git a/grml-live b/grml-live index 27e8e6a..d4e27c7 100755 --- a/grml-live +++ b/grml-live @@ -120,6 +120,7 @@ BUILD_ONLY='' BUILD_DIRTY='' BOOTSTRAP_ONLY='' HOSTNAME='' +CONFIGDUMP='' # don't use colors/escape sequences if [ -r /lib/lsb/init-functions ] ; then @@ -165,6 +166,7 @@ umount_all() { bailout() { rm -f /var/run/fai/fai_softupdate_is_running \ /var/run/fai/FAI_INSTALLATION_IN_PROGRESS + [ -n "$CONFIGDUMP" ] && rm -f "$CONFIGDUMP" [ -n "$SQUASHFS_STDERR" ] && rm -rf "$SQUASHFS_STDERR" umount_all [ -n "$1" ] && EXIT="$1" || EXIT="1" @@ -517,6 +519,13 @@ log "$CMDLINE" einfo "Logging actions to logfile $LOGFILE" # }}} +# dump config variables into file, for script access {{{ +CONFIGDUMP=$(mktemp) +set | egrep \ + '^(GRML_NAME|RELEASENAME|DATE|VERSION|SUITE|ARCH|DISTRI_NAME|USERNAME|HOSTNAME|APT_PROXY)=' \ + > ${CONFIGDUMP} +# }}} + # unpack chroot {{{ if [ -n "${UNPACK_CHROOT}" ]; then log "Unpacking chroot from ${UNPACK_CHROOT}" @@ -631,8 +640,8 @@ else echo force-unsafe-io > "$CHROOT_OUTPUT/etc/dpkg/dpkg.cfg.d/unsafe-io" log "Executed FAI command line:" - log "BUILD_ONLY=$BUILD_ONLY BOOTSTRAP_ONLY=$BOOTSTRAP_ONLY GRML_LIVE_LOCAL_CONFIG=$LOCAL_CONFIG fai $VERBOSE -C $GRML_FAI_CONFIG -s file:///$GRML_FAI_CONFIG/config -c$CLASSES -u $HOSTNAME $FAI_ACTION $CHROOT_OUTPUT $FAI_ARGS" - BUILD_ONLY="$BUILD_ONLY" BOOTSTRAP_ONLY="$BOOTSTRAP_ONLY" GRML_LIVE_LOCAL_CONFIG="$LOCAL_CONFIG" fai $VERBOSE \ + log "BUILD_ONLY=$BUILD_ONLY BOOTSTRAP_ONLY=$BOOTSTRAP_ONLY GRML_LIVE_CONFIG=$CONFIGDUMP fai $VERBOSE -C $GRML_FAI_CONFIG -s file:///$GRML_FAI_CONFIG/config -c$CLASSES -u $HOSTNAME $FAI_ACTION $CHROOT_OUTPUT $FAI_ARGS" + BUILD_ONLY="$BUILD_ONLY" BOOTSTRAP_ONLY="$BOOTSTRAP_ONLY" GRML_LIVE_CONFIG="$CONFIGDUMP" fai $VERBOSE \ -C "$GRML_FAI_CONFIG" -s "file:///$GRML_FAI_CONFIG/config" -c"$CLASSES" \ -u "$HOSTNAME" "$FAI_ACTION" "$CHROOT_OUTPUT" $FAI_ARGS | tee -a $LOGFILE RC="$PIPESTATUS" # notice: bash-only -- 2.1.4