X-Git-Url: http://git.grml.org/?p=grml-live.git;a=blobdiff_plain;f=grml-live;h=d5cd4a3a5ba0917138d32e9697224a6ea398e7cc;hp=cb715e0a7ebc6d829c9c931654ed7758abf96466;hb=3ff2a862f83553916a1148543d69a0bbcc97bf4d;hpb=87c37be5a0cd8450d3e724f673e59c3bd13d5e58 diff --git a/grml-live b/grml-live index cb715e0..d5cd4a3 100755 --- a/grml-live +++ b/grml-live @@ -4,7 +4,7 @@ # Authors: grml-team (grml.org), (c) Michael Prokop # Bug-Reports: see http://grml.org/bugs/ # License: This file is licensed under the GPL v2 or any later version. -# Latest change: Sun Oct 28 15:26:10 CET 2007 [mika] +# Latest change: Sun Oct 28 23:52:20 CET 2007 [mika] ################################################################################ # read configuration files, set some misc variables {{{ @@ -31,9 +31,16 @@ if [ -r /var/run/fai/FAI_INSTALLATION_IN_PROGRESS ] ; then exit 1 fi +if [ -r /var/run/fai/fai_softupdate_is_running ] ; then + echo "/usr/sbin/fai softupdate already running or was aborted before.">&2 + echo "You may remove /var/run/fai/fai_softupdate_is_running and try again.">&2 + exit 1 +fi + # make sure they are not set by default VERBOSE='' FORCE='' +UPDATE='' if [ -r /etc/grml/lsb-functions ] ; then . /etc/grml/lsb-functions @@ -170,7 +177,7 @@ http://grml.org/bugs/ # command line parsing {{{ -while getopts "a:c:g:i:o:r:s:t:v:FhV" opt; do +while getopts "a:c:g:i:o:r:s:t:v:FhuV" opt; do case "$opt" in a) ARCH="$OPTARG" ;; c) CLASSES="$OPTARG" ;; @@ -187,6 +194,7 @@ while getopts "a:c:g:i:o:r:s:t:v:FhV" opt; do v) VERSION="$OPTARG" ;; F) FORCE=1 ;; h) usage ; bailout 0 ;; + u) UPDATE=1 ;; V) VERBOSE="-v" ;; ?) echo "invalid option -$OPTARG" >&2; bailout 1 ;; esac @@ -221,6 +229,7 @@ if [ -z "$FORCE" ] ; then [ -n "$FAI_ARGS" ] && echo " additional arguments for FAI: $FAI_ARGS" [ -n "$LOGFILE" ] && echo " Logging to file: $LOGFILE" [ -n "$VERBOSE" ] && echo " Using VERBOSE mode." + [ -n "$UPDATE" ] && echo " Executing UPDATE instead of fresh installation." echo echo -n "Is this ok for you? [y/N] " read a @@ -290,7 +299,13 @@ fi # CHROOT_OUTPUT - execute FAI {{{ [ -n "$CHROOT_OUTPUT" ] || CHROOT_OUTPUT="$OUTPUT/grml_chroot" -if [ -d "$CHROOT_OUTPUT/bin" ] ; then +if [ -n "$UPDATE" ] ; then + FAI_ACTION=softupdate +else + FAI_ACTION=dirinstall +fi + +if [ -d "$CHROOT_OUTPUT/bin" -a -z "$UPDATE" ] ; then log "$CHROOT_OUTPUT exists already, skipping stage 'fai dirinstall'" ewarn "$CHROOT_OUTPUT exists already, skipping stage 'fai dirinstall'" ; eend 0 else @@ -299,7 +314,7 @@ else mkdir -p "${CHROOT_OUTPUT}/${MIRROR_DIRECTORY}" mount --bind "${MIRROR_DIRECTORY}" "${CHROOT_OUTPUT}/${MIRROR_DIRECTORY}" fi - fai $VERBOSE -C "$GRML_FAI_CONFIG" -c"$CLASSES" -u "$HOSTNAME" dirinstall "$CHROOT_OUTPUT" $FAI_ARGS | tee -a $LOGFILE + fai $VERBOSE -C "$GRML_FAI_CONFIG" -c"$CLASSES" -u "$HOSTNAME" $FAI_ACTION "$CHROOT_OUTPUT" $FAI_ARGS | tee -a $LOGFILE 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 chmod 644 $CHROOT_OUTPUT/etc/grml_version @@ -312,6 +327,7 @@ else if [ -r "/var/log/fai/dirinstall/$HOSTNAME/software.log" ] ; then # 1 errors during executing of commands # Unable to write mmap - msync (28 No space left on device) + # 'No candidate version found for' [/var/log/fai/current/software.log] grep 'dpkg: error processing' /var/log/fai/dirinstall/$HOSTNAME/software.log >> $LOGFILE && ERROR=1 grep 'E: Method http has died unexpectedly!' /var/log/fai/dirinstall/$HOSTNAME/software.log >> $LOGFILE && ERROR=2 grep 'ERROR: chroot' /var/log/fai/dirinstall/$HOSTNAME/software.log >> $LOGFILE && ERROR=3