From fb862d890ebcba8939e423443b3782fc96682cf7 Mon Sep 17 00:00:00 2001 From: Michael Prokop Date: Thu, 29 Oct 2009 11:03:02 +0100 Subject: [PATCH] Support new option '-d ' --- debian/changelog | 7 +++++++ docs/grml-live.txt | 10 ++++++++++ grml-live | 17 ++++++++++------- 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/debian/changelog b/debian/changelog index 8c6d875..cbf874d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +grml-live (0.9.30) UNRELEASED; urgency=low + + * Support new option '-d ' to use specified date as build date + information on the ISO instead of the default. + + -- Michael Prokop Thu, 29 Oct 2009 11:02:18 +0100 + grml-live (0.9.29) unstable; urgency=low [ Ulrich Dangel ] diff --git a/docs/grml-live.txt b/docs/grml-live.txt index 29d17e8..63420b6 100644 --- a/docs/grml-live.txt +++ b/docs/grml-live.txt @@ -102,6 +102,16 @@ supported inside the scripts/hooks/classes at /etc/grml/fai/config. Instead use /etc/grml/grml-live.local for configuration stuff used inside /etc/grml/fai/config. + -d **DATE**:: + +Use specified date as build date information on the ISO instead of the default. +The default is the date when grml-live is being executed (retrieved via +executing 'date +%Y-%m-%d'). The information is stored inside the file +/GRML/grml-version on the ISO, /etc/grml_version in the squashfs file and in all +the bootsplash related files. This option is useful if you want to provide an +ISO with release information for a specific date but have to build it in +advance. Usage example: '-d 2009-10-30' + -F:: Force execution and do not prompt for acknowledgment of configuration. diff --git a/grml-live b/grml-live index 0a3fb39..3b847c9 100755 --- a/grml-live +++ b/grml-live @@ -23,10 +23,9 @@ fi set -e # global variables -GRML_LIVE_VERSION='0.9.29' +GRML_LIVE_VERSION='0.9.30-pre1' PN="$(basename $0)" CMDLINE="$0 $@" -ISO_DATE="$(date +%Y-%m-%d)" SOURCES_LIST_FILE='/etc/grml/fai/apt/sources.list' ADDONS_LIST_FILE='/boot/isolinux/addons_list.cfg' # }}} @@ -44,6 +43,7 @@ Usage: $PN [options, see as follows] -B build the ISO without touching the chroot (skips cleanup) -c classes to be used for building the ISO via FAI -C configuration file for grml-live + -d use specified date instead of build time as date of release -F force execution without prompting -g set the grml flavour name -h display short usage information and exit @@ -212,13 +212,14 @@ fi # }}} # command line parsing {{{ -while getopts "a:C:c:g:i:I:o:r:s:t:v:bBFnquVz" opt; do +while getopts "a:C:c:d:g:i:I:o:r:s:t:v:bBFnquVz" opt; do case "$opt" in a) ARCH="$OPTARG" ;; b) BUILD_ONLY=1 ;; B) BUILD_DIRTY=1 ;; c) CLASSES="$OPTARG" ;; C) CONFIG="$OPTARG" ;; + d) DATE="$OPTARG" ;; g) GRML_NAME="$OPTARG" ;; i) ISO_NAME="$OPTARG" ;; I) CHROOT_INSTALL="$OPTARG" ;; @@ -245,6 +246,7 @@ shift $(($OPTIND - 1)) # set ARGV to the first not parsed commandline parameter [ -n "$BUILD_OUTPUT" ] || BUILD_OUTPUT="$OUTPUT/grml_cd" [ -n "$CHROOT_OUTPUT" ] || CHROOT_OUTPUT="$OUTPUT/grml_chroot" [ -n "$CLASSES" ] || CLASSES="GRMLBASE,GRML_MEDIUM,I386" +[ -n "$DATE" ] || DATE="$(date +%Y-%m-%d)" [ -n "$DISTRI_INFO" ] || DISTRI_INFO='Grml - Live Linux for system administrators ' [ -n "$DISTRI_NAME" ] || DISTRI_NAME="grml" [ -n "$DISTRI_SPLASH" ] || DISTRI_SPLASH='grml.png' @@ -317,6 +319,7 @@ if [ -z "$FORCE" ] ; then [ -n "$ISO_OUTPUT" ] && echo " ISO target: $ISO_OUTPUT" [ -n "$GRML_NAME" ] && echo " grml name: $GRML_NAME" [ -n "$RELEASENAME" ] && echo " release name: $RELEASENAME" + [ -n "$DATE" ] && echo " build date: $DATE" [ -n "$VERSION" ] && echo " grml version: $VERSION" [ -n "$SUITE" ] && echo " Debian suite: $SUITE" [ -n "$ARCH" ] && echo " Architecture: $ARCH" @@ -512,8 +515,8 @@ else eerror "Error: critical error while executing fai [exit code ${RC}]. Exiting." ; eend 1 bailout 1 else - log "Setting /etc/grml_version to $GRML_NAME $VERSION Release Codename $RELEASENAME [$ISO_DATE]" - echo "$GRML_NAME $VERSION Release Codename $RELEASENAME [$ISO_DATE]" > $CHROOT_OUTPUT/etc/grml_version + log "Setting /etc/grml_version to $GRML_NAME $VERSION Release Codename $RELEASENAME [$DATE]" + echo "$GRML_NAME $VERSION Release Codename $RELEASENAME [$DATE]" > $CHROOT_OUTPUT/etc/grml_version chmod 644 $CHROOT_OUTPUT/etc/grml_version einfo "Rebuilding initramfs" # make sure new /etc/grml_version reaches the initramfs: @@ -671,7 +674,7 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then RELEASE_INFO="$(extend_string_end 68 "$RELEASE_INFO")" sed -i "s/%RELEASE_INFO%/$GRML_NAME $VERSION - $RELEASENAME/" "$BUILD_OUTPUT"/GRML/grml-version - sed -i "s/%DATE%/$ISO_DATE/" "$BUILD_OUTPUT"/GRML/grml-version + sed -i "s/%DATE%/$DATE/" "$BUILD_OUTPUT"/GRML/grml-version # make sure the squashfs filename is set accordingly: SQUASHFS_NAME="$GRML_NAME.squashfs" @@ -680,7 +683,7 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then for file in "${BUILD_OUTPUT}"/boot/isolinux/*.cfg "${BUILD_OUTPUT}"/boot/isolinux/*.msg \ "${BUILD_OUTPUT}"/boot/grub/* ; do sed -i "s/%ARCH%/$ARCH/g" "${file}" - sed -i "s/%DATE%/$ISO_DATE/g" "${file}" + sed -i "s/%DATE%/$DATE/g" "${file}" sed -i "s/%DISTRI_INFO%/$DISTRI_INFO/g" "${file}" sed -i "s/%DISTRI_NAME%/$DISTRI_NAME/g" "${file}" sed -i "s/%DISTRI_SPLASH%/$DISTRI_SPLASH/g" "${file}" -- 2.1.4