DCSDIR default value is /live/image issue #730, if no GRMLCONFIG device is found...
[grml-autoconfig.git] / autoconfig.functions
index d90e051..8097a2d 100755 (executable)
@@ -47,10 +47,14 @@ fi
 # Get a bootoption's parameter: read boot command line and either
 # echo last parameter's argument or return false.
 getbootparam(){
-  case "$CMDLINE" in
-    *$1=*)
-      result="${CMDLINE##* $1=}"
-      result="${result%%[      ]*}"
+  local line
+  local ws
+  ws='  '
+  line=" $CMDLINE "
+  case "$line" in
+    *[${ws}]"$1="*)
+      result="${line##*[$ws]$1=}"
+      result="${result%%[$ws]*}"
       echo "$result"
       return 0 ;;
     *) # no match?
@@ -60,14 +64,17 @@ getbootparam(){
 
 # Check boot commandline for specified option
 checkbootparam(){
-  [ -n "$1" ] || { echo "Error: missing argument to checkbootparam()" ; return 1 }
-  # make sure we match beginning and end of line as well
-  # but don't match 'vg' if we want to check for 'vga'
-  if echo "$CMDLINE" | grep -qw "$1" ; then
-     return 0
-  else
-     return 1
-  fi
+  [ -n "$1" ] || ( echo "Error: missing argument to checkbootparam()" ; return 1 )
+  local line
+  local ws
+  ws='  '
+  line=" $CMDLINE "
+  case "$line" in
+    *[${ws}]"$1"=*|*[${ws}]"$1"[${ws}]*)
+      return 0 ;;
+    *)
+      return 1 ;;
+  esac
 }
 
 # Check wheter a configuration variable (like $CONFIG_TOHD) is
@@ -1850,7 +1857,7 @@ create_mnt_dirs(){
 config_x_startup(){
 # make sure we start X only if startx is used *before* a nostartx option
 # so it's possible to disable automatic X startup using nostart
-if checkbootparam 'startx' && ! grep -q 'startx.*nostartx' "$CMDLINE" ; then
+if checkbootparam 'startx' && ! echo "$CMDLINE" | grep -q 'startx.*nostartx' ; then
  if [ -x /usr/X11R6/bin/X ] ; then
   if [ -z "$INSTALLED" ] ; then
    WINDOWMANAGER="$(getbootparam 'startx' 2>>$DEBUG)"
@@ -1951,6 +1958,8 @@ else
         fi
         DCSDIR="/mnt/grml"
       fi
+    else
+      DCSDIR="/live/image"
     fi
   fi
 fi