Use lang=en as default (instead of lang=us).
[grml-autoconfig.git] / autoconfig.functions
index 5417220..637f238 100755 (executable)
@@ -78,6 +78,11 @@ checkbootparam(){
   esac
 }
 
+# Check if currently using a framebuffer
+hasfb() {
+    [ -e /dev/fb0 ] && return 0 || return 1
+}
+
 # Check wheter a configuration variable (like $CONFIG_TOHD) is
 # enabled or not
 checkvalue(){
@@ -214,7 +219,7 @@ config_language(){
 
  # set default to 'en' in live-cd mode if $LANGUAGE is not yet set:
  if [ -z "$INSTALLED" ] ; then
-    [ -n "$LANGUAGE" ] || LANGUAGE='us'
+    [ -n "$LANGUAGE" ] || LANGUAGE='en'
  fi
 
  # if bootoption lang is used update /etc/default/locale, otherwise *not*!
@@ -236,6 +241,9 @@ config_language(){
        else
           ewarn "/usr/share/consolefonts/Uni3-Terminus16.psf.gz not available. Please upgrade package console-terminus." ; eend 1
        fi
+       if ! hasfb ; then
+          CONSOLEFONT='Lat15-Terminus16'
+       fi
     fi
  fi
 
@@ -297,7 +305,7 @@ config_language(){
  if [ -r /etc/default/locale ] ; then
     if grep -q "LANG=.*UTF" /etc/default/locale ; then
        einfo "Setting up unicode environment."
-       unicode_start ; eend $?
+       unicode_start 2>>$DEBUG ; eend $?
     fi
  fi
 
@@ -1274,7 +1282,7 @@ else
     einfo "Network device ${WHITE}${DEVICE}${NORMAL} detected, DHCP broadcasting for IP. (Backgrounding)"
     trap 2 3 11
     ifconfig $DEVICE up >>$DEBUG 2>&1
-    ( pump -i $DEVICE --script=/etc/grml/pump-script >>$DEBUG 2>&1 && echo finished_running_pump > /etc/network/status/$DEVICE ) &
+    ( pump -i $DEVICE --script=/usr/lib/grml-autoconfig/pump-runparts >>$DEBUG 2>&1 && echo finished_running_pump > /etc/network/status/$DEVICE ) &
     trap "" 2 3 11
     sleep 1
     eend 0
@@ -1968,6 +1976,7 @@ config_finddcsdir() {
 #  - If myconfig=foo is set on the command line, $dcs-dir is set to
 #    foo, even if a GRMLCFG partition is present.
 DCSDIR=""
+DCSMP="/mnt/grml"
 if checkbootparam 'noautoconfig' || checkbootparam 'forensic' ; then
   ewarn "Skipping running automount of device(s) labeled GRMLCFG as requested." ; eend 0
 else
@@ -1988,6 +1997,9 @@ else
         fi
       fi
       DCSDEVICE=$(blkid -t LABEL=GRMLCFG | head -1 | awk -F: '{print $1}')
+      if [ -n "$DCSDEVICE" ]; then
+        DCSMP="/mnt/grmlcfg"
+      fi
       eoutdent
     fi
 
@@ -2001,15 +2013,15 @@ else
       if [ -n "$DCSDIR" ]; then
         ewarn "$DCSDEVICE already mounted on $DCSDIR"; eend 0
       else
-        [ -d /mnt/grml ] || mkdir /mnt/grml
-        umount /mnt/grml 1>>$DEBUG 2>&1 # make sure it is not mounted
-        mount -o ro -t auto $DCSDEVICE  /mnt/grml ; RC="$?"
+        [ -d $DCSMP ] || mkdir $DCSMP
+        umount $DCSMP 1>>$DEBUG 2>&1 # make sure it is not mounted
+        mount -o ro -t auto $DCSDEVICE  $DCSMP ; RC="$?"
         if [[ $RC == 0 ]]; then
-          einfo "Successfully mounted $DCSDEVICE to /mnt/grml (readonly)." ; eend 0
+          einfo "Successfully mounted $DCSDEVICE to $DCSMP (readonly)." ; eend 0
         else
-          eerror "Error: mounting $DCSDEVICE to /mnt/grml (readonly) failed." ; eend 1
+          eerror "Error: mounting $DCSDEVICE to $DCSMP (readonly) failed." ; eend 1
         fi
-        DCSDIR="/mnt/grml"
+        DCSDIR="$DCSMP"
       fi
       eoutdent
     fi
@@ -2063,28 +2075,38 @@ fi
 }
 
 config_scripts(){
-if checkbootparam 'scripts' ; then
+if checkbootparam 'scripts' || [ "$DCSMP" = "/mnt/grmlcfg" ]; then
    SCRIPTS="$(getbootparam 'scripts' 2>>$DEBUG)"
-   if [ -z "$SCRIPTS" ]; then
+   if [ -d ${DCSDIR}/scripts ] && [ -z "$SCRIPTS" ]; then
      SCRIPTS="$(cd ${DCSDIR}/scripts; /bin/ls -1d [Gg][Rr][Mm][Ll].[Ss][Hh] 2>>$DEBUG)"
    fi
    if ! echo $SCRIPTS | grep -q '/'; then
      # backwards compatibility: if no path is given get scripts from scripts/
      SCRIPTS="scripts/$SCRIPTS"
    fi
-   SCRIPTS="${DCSDIR}/$SCRIPTS"
-   if [ -d "$SCRIPTS" ]; then
-     einfo "Bootparameter scripts found. Trying to execute from directory ${SCRIPTS}:"
-     run-parts $SCRIPTS
-   else
-     einfo "Bootparameter scripts found. Trying to execute ${SCRIPTS}:"
-     sh -c $SCRIPTS
+   if [ "$DCSMP" = "/mnt/grmlcfg" ]; then
+     # we are executing from a GRMLCFG labeled fs
+     # kick everything we have done before and start over
+     SCRIPTS="$(cd ${DCSDIR}; /bin/ls -1d [Gg][Rr][Mm][Ll].[Ss][Hh] 2>>$DEBUG)"
+   fi
+   if [ -n "$SCRIPTS" ]; then
+     SCRIPTS="${DCSDIR}/$SCRIPTS"
+     if [ "$DCSMP" = "/mnt/grmlcfg" ]; then
+       einfo "Trying to execute ${SCRIPTS}"
+       sh -c $SCRIPTS
+     elif [ -d "$SCRIPTS" ]; then
+       einfo "Bootparameter scripts found. Trying to execute from directory ${SCRIPTS}:"
+       run-parts $SCRIPTS
+     else
+       einfo "Bootparameter scripts found. Trying to execute ${SCRIPTS}:"
+       sh -c $SCRIPTS
+     fi
    fi
 fi
 }
 
 config_config(){
-if checkbootparam 'config' ; then
+if checkbootparam 'config' || [ "$DCSMP" = "/mnt/grmlcfg" ]; then
   CONFIG="$(getbootparam 'config' 2>>$DEBUG)"
   if [ -z "$CONFIG" ]; then
     CONFIG="$(cd ${DCSDIR}; ls -1d [Cc][Oo][Nn][Ff][Ii][Gg].[Tt][Bb][Zz] 2>>$DEBUG)"
@@ -2104,9 +2126,9 @@ if checkbootparam 'config' ; then
     fi
   fi
 fi
-# umount /mnt/grml if it was mounted by finddcsdir
+# umount $DCSMP if it was mounted by finddcsdir
 # this doesn't really belong here
-grep -q '/mnt/grml' /proc/mounts && umount /mnt/grml
+grep -q '$DCSMP' /proc/mounts && umount $DCSMP
 }
 # }}}