15-initsetup: improve check for empty GRML_NAME variable to make it compatible with...
[grml-live.git] / etc / grml / fai / config / scripts / GRMLBASE / 15-initsetup
index dadd5ae..72483ea 100755 (executable)
@@ -4,16 +4,43 @@
 # Authors:       grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
 # Bug-Reports:   see http://grml.org/bugs/
 # License:       This file is licensed under the GPL v2 or any later version.
-# Latest change: Sun Sep 16 22:57:36 CEST 2007 [mika]
 ################################################################################
 
 set -u
 set -e
 
-if grep -q 'small' $target/etc/grml_version ; then
-   cp $target/etc/runlevel.conf.livecd.small $target/etc/runlevel.conf
-else
-   cp $target/etc/runlevel.conf.livecd $target/etc/runlevel.conf
+GRML_NAME="${GRML_NAME:-grml}"
+
+if ! [ -r $target/etc/runlevel.conf ] ; then
+   echo 'Warning: /etc/runlevel.conf does not exist...'
+   echo '... assuming we do not have file-rc, skipping 15-initsetup'
+   exit 0
+fi
+
+# keep a backup of the original runlevel.conf file for reference
+# but only save it as /etc/runlevel.conf.original if it's not the
+# according live system version, this should prevent from overriding
+# /etc/runlevel.conf.original if re-running grml-live with -b option.
+if ! cmp $target/etc/runlevel.conf $target/etc/runlevel.conf.livecd 1>/dev/null || \
+   ! cmp $target/etc/runlevel.conf $target/etc/runlevel.conf.livecd.small 1>/dev/null ; then
+
+   # make sure to store old backup files if they differ as well
+   if [ -r $target/etc/runlevel.conf.original ] ; then
+      if ! cmp $target/etc/runlevel.conf $target/etc/runlevel.conf.original 1>/dev/null ; then
+         cp $target/etc/runlevel.conf.original $target/etc/runlevel.conf.original."$(date +%Y%m%d_%k:%M:%S)"
+      fi
+   fi
+
+   cp $target/etc/runlevel.conf $target/etc/runlevel.conf.original
+fi
+
+# if we have a small ISO let's adjust runlevel.conf:
+if [ -n "$GRML_NAME" ] ; then
+   if echo "$GRML_NAME" | grep -q small ; then
+      cp $target/etc/runlevel.conf.livecd.small $target/etc/runlevel.conf
+   else
+      cp $target/etc/runlevel.conf.livecd $target/etc/runlevel.conf
+   fi
 fi
 
 ## END OF FILE #################################################################