Try to automate grml-live pool handling
[grml-live.git] / grml-live
index 9ce2284..171457f 100755 (executable)
--- a/grml-live
+++ b/grml-live
@@ -71,12 +71,8 @@ trap bailout 1 2 3 15
 [ -n "$RELEASENAME" ] || RELEASENAME="grml-live rocks"
 [ -n "$GRML_NAME" ] || GRML_NAME='grml'
 
-[ -d /var/log/fai/dirinstall/"${HOSTNAME}" ] || mkdir -p /var/log/fai/dirinstall/${HOSTNAME}
-if [ -d /var/log/fai/dirinstall/"${HOSTNAME}" ] ; then
-   LOGFILE=/var/log/fai/dirinstall/${HOSTNAME}/grml-live.log
-else
-   LOGFILE="$LOGDIR/grml-live.log"
-fi
+[ -d /var/log/grml-live ] || mkdir /var/log/grml-live
+LOGFILE=/var/log/grml-live/"$(date +%Y-%m-%d)_$$.log"
 
 NFSROOT_CONF=/etc/grml/fai/make-fai-nfsroot.conf
 
@@ -184,9 +180,6 @@ while getopts "a:c:g:i:o:r:s:t:v:FhV" opt; do
   esac
 done
 shift $(($OPTIND - 1))  # set ARGV to the first not parsed commandline parameter
-
-echo "Executing grml-live $GRML_LIVE_VERSION using the commandline:" >> $LOGFILE
-echo "$(basename $0) $@" >> $LOGFILE
 # }}}
 
 # some misc checks before executing FAI {{{
@@ -215,6 +208,7 @@ if [ -z "$FORCE" ] ; then
    [ -n "$TEMPLATE_DIRECTORY" ] && echo "  Template files:    $TEMPLATE_DIRECTORY"
    [ -n "$FAI_ARGS" ]      && echo "  additional arguments for FAI: $FAI_ARGS"
    [ -n "$VERBOSE" ]       && echo "  Using VERBOSE mode."
+   [ -n "$LOGFILE" ]       && echo "  Logging to file:   $LOGFILE"
    echo
    echo -n "Is this ok for you? [y/N] "
    read a
@@ -222,13 +216,14 @@ if [ -z "$FORCE" ] ; then
       bailout 1 "Exiting as requested."
    fi
    echo
-
 fi
 
 start_seconds=$(cut -d . -f 1 /proc/uptime)
 log "------------------------------------------------------------------------------"
-log "Starting grml-live run [$(date)]"
-log "Executed command line: $0 $*"
+log "Starting grml-live [${GRML_LIVE_VERSION}] run [$(date)]"
+log "Executed command line: $0 $@"
+
+einfo "Logging actions to logfile $LOGFILE"
 # }}}
 
 # on-the-fly configuration {{{
@@ -257,6 +252,11 @@ if [ -n "$SUITE" ] ; then
    DIST="\|\ etch\ \|\ stable\ \|\ lenny\ \|\ testing\ \|\ sid\ \|\ unstable\ "
    sed -i "s/\(deb .\+\)\([ \t]+\)$DIST\([ \t]+\)\(main \)/\1\2 $SUITE \3\4/" $LIVE_CONF
    sed -i "s/\(deb .\+\)\([ \t]+\)$DIST\([ \t]+\)\(main \)/\1\2 $SUITE \3\4/" /etc/grml/fai/apt/sources.list
+   # notice: activate grml-live pool only if we are building against unstable:
+   if grep -qe unstable -qe sid /etc/grml/fai/apt/sources.list ; then
+      grep grml-stable /etc/grml/fai/apt/sources.list | \
+           sed 's/grml-stable/grml-live/' >> /etc/grml/fai/apt/sources.list
+   fi
 
    sed -i "s|FAI_DEBOOTSTRAP=\"[a-z]* |FAI_DEBOOTSTRAP=\"$SUITE |" $LIVE_CONF
    sed -i "s|FAI_DEBOOTSTRAP=\"[a-z]* |FAI_DEBOOTSTRAP=\"$SUITE |" $NFSROOT_CONF
@@ -292,6 +292,7 @@ else
    ERROR=''
    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)
       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