Added tag 0.6.9 for changeset 912e6ba95eff1de9e134e85e5bef6272e8cf0080
[grml-autoconfig.git] / autoconfig.functions
index 8305199..7714ef2 100755 (executable)
@@ -197,7 +197,7 @@ config_language(){
 
  # set default to 'en' in live-cd mode if $LANGUAGE is not yet set:
  if [ -z "$INSTALLED" ] ; then
-    [ -n "$LANGUAGE" ] || LANGUAGE='en'
+    [ -n "$LANGUAGE" ] || LANGUAGE='en-utf8'
  fi
 
  # if bootoption lang is used update /etc/default/locale, otherwise *not*!
@@ -209,10 +209,11 @@ config_language(){
  if [ -z "$CONSOLEFONT" ] ; then
     if ! checkbootparam "nodefaultfont" >>$DEBUG 2>&1 ; then
        # [ -n "$UTF8" ] && CONSOLEFONT='LatArCyrHeb-16' || CONSOLEFONT='Lat15-Terminus16'
-       if [ -r /usr/share/consolefonts/Lat15-Terminus16.psf.gz ] ; then
-          CONSOLEFONT='Lat15-Terminus16'
+       # if [ -r /usr/share/consolefonts/Lat15-Terminus16.psf.gz ] ; then
+       if [ -r /usr/share/consolefonts/Uni3-Terminus14.psf.gz ] ; then
+          CONSOLEFONT='Uni3-Terminus14'
        else
-          ewarn "/usr/share/consolefonts/Lat15-Terminus16.psf.gz not available. Please upgrade package console-terminus." ; eend 1
+          ewarn "/usr/share/consolefonts/Uni3-Terminus14.psf.gz not available. Please upgrade package console-terminus." ; eend 1
        fi
     fi
  fi
@@ -280,9 +281,9 @@ config_language(){
      consolechars -f $CONSOLEFONT || consolechars -d
      eend $?
 
-     if [ -n "$UTF8" ] ; then
-        einfo "Notice: run 'filterm - dynafont' in your shell to enable a unicode capable console."
-     fi
+#     if [ -n "$UTF8" ] ; then
+#        einfo "Notice: run 'filterm - dynafont' in your shell to enable a unicode capable console."
+#     fi
   fi
 
   # we have to set up all consoles, therefore loop it over all ttys:
@@ -335,8 +336,20 @@ config_time(){
   checkbootparam utc >>$DEBUG 2>&1 && UTC="-u"
   checkbootparam gmt >>$DEBUG 2>&1 && UTC="-u"
   # hwclock uses the TZ variable
-  export TZ
-  hwclock $UTC -s
+  if [ -r /etc/default/locale ] ; then
+     . /etc/default/locale
+  else
+     TZ=Europe/Vienna
+  fi
+  ERROR=$(TZ="$TZ" hwclock $UTC -s 2>&1) ; RC=$?
+  if [ -n "$ERROR" ] ; then
+     eindent
+     ERROR=$(TZ="$TZ" hwclock $UTC -s --directisa 2>&1)
+     if [ -n "$ERROR" ] ; then
+        eerror "Problem running hwclock: $ERROR" ; eend 1
+     fi
+     eoutdent
+  fi
  fi
 }
 # }}}
@@ -964,7 +977,9 @@ if [ -n "$partitions" ]; then
   case "$f" in swap)
    eindent
    if [ -n "$NOSWAP" ]; then
-    ewarn "Ignoring swap partition ${WHITE}$p${NORMAL}. (Force usage via boot option 'swap', or execute grml-swapon)" ; eend 0
+      if [ -z "$INSTALLED" ] ; then
+         ewarn "Ignoring swap partition ${WHITE}$p${NORMAL}. (Force usage via boot option 'swap', or execute grml-swapon)" ; eend 0
+      fi
    else
      case "$(dd if=$p bs=1 count=6 skip=4086 2>/dev/null)" in
              S1SUSP|S2SUSP|pmdisk|[zZ]*)
@@ -1897,8 +1912,9 @@ fi
 config_swraid(){
   if [ -z "$INSTALLED" ] ; then
   # notice: checkbootparam "forensic" is just for users who don't know how to really use the bootoption
-  if checkbootparam "noraid" -o checkbootparam "forensic" -o checkbootparam "raid=noautodetect" ; then
-     ewarn "Skipping search for SW-RAID as requested on boot commandline." ; eend 0
+  if checkbootparam 'noraid'   -o checkbootparam 'noswraid' -o \
+     checkbootparam 'forensic' -o checkbootparam 'raid=noautodetect' ; then
+     ewarn "Skipping SW-RAID code as requested on boot commandline." ; eend 0
   else
     if ! [ -x /sbin/mdadm ] ; then
        eerror "mdadm not available, can not execute it." ; eend 1
@@ -1907,47 +1923,53 @@ config_swraid(){
        # if ! egrep -qv '^(MAILADDR.*|#.*|)$' /etc/mdadm/mdadm.conf 2>>$DEBUG ; then
        # find out whether we have a valid configuration file already
        if ! grep -q ARRAY /etc/mdadm/mdadm.conf 2>>$DEBUG ; then
-         einfo "Creating /etc/mdadm/mdadm.conf"
-         [ -r /etc/mdadm/mdadm.conf ] && mv /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf.old
-         MDADM_MAILADDR__='root' /usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf ; eend $?
-       else
-         ewarn "/etc/mdadm/mdadm.conf looks like a configured mdadm setup, will not touch it." ; eend 0
+          einfo "Creating /etc/mdadm/mdadm.conf for use with mdadm."
+          [ -r /etc/mdadm/mdadm.conf ] && mv /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf.old
+          MDADM_MAILADDR__='root' /usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf ; eend $?
+        else
+          ewarn "/etc/mdadm/mdadm.conf looks like a configured mdadm setup, will not touch it." ; eend 0
        fi
 
-       einfo "Searching for software RAID arrays (disable via bootoption noraid):"
-       eindent
-         IFSOLD=${IFS:-}
-         IFS='
+       if ! checkbootparam 'swraid' ; then 
+          eindent
+          einfo "Just run 'Start mdadm-raid' to assemble md arrays or boot using 'swraid' as bootoption for autostart."
+          eoutdent
+       else
+          einfo "Bootoption swraid found. Searching for software RAID arrays:"
+          eindent
+           IFSOLD=${IFS:-}
+           IFS='
 '
-         for line in $(mdadm --assemble --scan --auto=yes --symlink=no 2>&1) ; do
-             case $line in
-               *'No arrays found'*)
-                 ewarn "$line" ; eend 0
-                 ;;
-               *)
-                 einfo "$line" ; eend 0
-                 ;;
-             esac
-         done
-         IFS=$IFSOLD
-       eoutdent
+           for line in $(mdadm --assemble --scan --auto=yes --symlink=no 2>&1) ; do
+               case $line in
+                 *'No arrays found'*)
+                   ewarn "$line" ; eend 0
+                   ;;
+                 *)
+                   einfo "$line" ; eend 0
+                   ;;
+               esac
+           done
+           IFS=$IFSOLD
+         eoutdent
 
-       if [ -r /proc/mdstat ] ; then
-          eindent
-          MDSTAT=$(grep '^md[0-9]' /proc/mdstat)
-          if [ -z "$MDSTAT" ] ; then
-             ewarn "No active arrays found" ; eend 0
-          else
-             IFSOLD=${IFS:-}
-             IFS='
+         if [ -r /proc/mdstat ] ; then
+            eindent
+            MDSTAT=$(grep '^md[0-9]' /proc/mdstat)
+            if [ -z "$MDSTAT" ] ; then
+               ewarn "No active arrays found" ; eend 0
+            else
+               IFSOLD=${IFS:-}
+               IFS='
 '
-             for line in $(grep '^md[0-9]' /proc/mdstat) ; do
-                 einfo "active arrays: $line" ; eend 0
-             done
-             IFS=$IFSOLD
-          fi
-          eoutdent
-       fi
+               for line in $(grep '^md[0-9]' /proc/mdstat) ; do
+                   einfo "active arrays: $line" ; eend 0
+               done
+               IFS=$IFSOLD
+            fi
+            eoutdent
+         fi # /proc/mdstat
+       fi # bootoption swraid
 
      fi # is /sbin/mdadm executable?
   fi # check for bootoptions