X-Git-Url: https://git.grml.org/?p=grml-autoconfig.git;a=blobdiff_plain;f=autoconfig.functions;h=3c594cf8cb1e309261e10ed3906e324418545b77;hp=d90e051a330324cffc705179d3b81593dd327d75;hb=d9f5fe86a8428d146bb4489578f8e53a2d100445;hpb=0726d09de9efa8d249360d5197802957354d3149 diff --git a/autoconfig.functions b/autoconfig.functions index d90e051..3c594cf 100755 --- a/autoconfig.functions +++ b/autoconfig.functions @@ -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 @@ -1792,7 +1799,7 @@ config_netconfig(){ CONFIGFILE='/tmp/netconfig.grml' getconfig() { - wget --timeout=10 --dns-timeout=10 --connect-timeout=10 \ + wget --timeout=10 --dns-timeout=10 --connect-timeout=10 --tries=1 \ --read-timeout=10 $CONFIG -O $CONFIGFILE && return 0 || return 1 } einfo "Trying to get ${WHITE}${CONFIG}${NORMAL}" @@ -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