Fix logical structure of config_vmware().
[grml-autoconfig.git] / autoconfig.functions
index e129cae..4b603a5 100755 (executable)
@@ -4,7 +4,7 @@
 # Authors:       grml-team (grml.org), (c) Klaus Knopper <knopper@knopper.net>, (c) Michael Prokop <mika@grml.org>
 # Bug-Reports:   see http://grml.org/bugs/
 # License:       This file is licensed under the GPL v2.
-# Latest change: Son Mär 25 12:32:37 CEST 2007 [mika]
+# Latest change: Die Apr 03 17:02:59 CEST 2007 [mika]
 ################################################################################
 
 # {{{ path, variables, signals, umask, zsh
@@ -270,39 +270,40 @@ config_language(){
 
  [ -r /etc/sysconfig/keyboard ] && . /etc/sysconfig/keyboard
 
-  # Set default keyboard before interactive setup
-  if [ -n "$KEYTABLE" ] ; then
-   einfo "Running loadkeys for ${WHITE}${KEYTABLE}${NORMAL} in background"
-   loadkeys -q $KEYTABLE &
-   eend $?
-  fi
-
-  if [ -n "$CONSOLEFONT" ] ; then
-     einfo "Running consolechars using ${CONSOLEFONT}"
-     consolechars -f $CONSOLEFONT || consolechars -d
-     eend $?
-  fi
+ # activate unicode console if running within utf8 environment
+ if [ -r /etc/default/locale ] ; then
+    if grep -q "LANG=.*UTF" /etc/default/locale ; then
+       einfo "Setting up unicode environment."
+       unicode_start
+       eend $?
+    fi
+ fi
 
-  # we have to set up all consoles, therefore loop it over all ttys:
-  if [ -n "$CHARMAP" ] ; then
-     einfo "Running consolechars for ${CHARMAP}"
-     NUM_CONSOLES=`fgconsole --next-available`
-     NUM_CONSOLES=`expr ${NUM_CONSOLES} - 1`
-     [ ${NUM_CONSOLES} -eq 1 ] && NUM_CONSOLES=6
-     for vc in `seq 0 ${NUM_CONSOLES}`  ; do
-       consolechars --tty=/dev/tty${vc} -m ${CHARMAP} ; RC=$?
-     done
-     eend ${RC}
-  fi
+ # Set default keyboard before interactive setup
+ if [ -n "$KEYTABLE" ] ; then
+  einfo "Running loadkeys for ${WHITE}${KEYTABLE}${NORMAL} in background"
+  loadkeys -q $KEYTABLE &
+  eend $?
+ fi
 
-  # activate unicode console if running within utf8 environment
-  if [ -r /etc/default/locale ] ; then
-     if grep -q "LANG=.*UTF" /etc/default/locale ; then
-        einfo "Setting up unicode environment."
-        unicode_start
-        eend $?
-     fi
-  fi
+ # we have to set up all consoles, therefore loop it over all ttys:
+ NUM_CONSOLES=`fgconsole --next-available`
+ NUM_CONSOLES=`expr ${NUM_CONSOLES} - 1`
+ [ ${NUM_CONSOLES} -eq 1 ] && NUM_CONSOLES=6
+ if [ -n "$CHARMAP" ] ; then
+    einfo "Running consolechars for ${CHARMAP}"
+    for vc in `seq 0 ${NUM_CONSOLES}`  ; do
+        consolechars --tty=/dev/tty${vc} -m ${CHARMAP} ; RC=$?
+    done
+    eend $RC
+ fi
+ if [ -n "$CONSOLEFONT" ] ; then
+    einfo "Running consolechars using ${CONSOLEFONT}"
+    for vc in `seq 0 ${NUM_CONSOLES}`  ; do
+        consolechars --tty=/dev/tty${vc} -f $CONSOLEFONT || consolechars --tty=/dev/tty${vc} -d
+    done
+    eend $?
+ fi
 
  eoutdent
 }
@@ -388,8 +389,8 @@ if checkbootparam novmware ; then
    ewarn "Skipping running vmware specific stuff as requested on boot commandline." ; eend 0
 else
    if [ -z "$INSTALLED" ] ; then
-      if ! checkbootparam qemu ; then
-         if vmware-detect ; then
+      if vmware-detect || stringinstring "BOOT_IMAGE=vmware " "$CMDLINE" ; then
+              if ! checkbootparam qemu ; then
             if [ -r /etc/X11/xorg.conf.vmware ] ; then
                einfo "VMware: Copying /etc/X11/xorg.conf.vmware to /etc/X11/xorg.conf"
                cp /etc/X11/xorg.conf.vmware /etc/X11/xorg.conf ; eend $?
@@ -509,10 +510,21 @@ fi
 # activate serial console {{{
 config_console(){
 if checkbootparam "console"; then
-  einfo "Bootoption (for serial) console detected. Activating mgetty."
+  einfo "Bootoption (for serial) console detected."
+  eindent
+    if [ -r /etc/mgetty/mgetty.config ] ; then
+       MODE=$(getbootparam console | awk -F, '{print $2}')
+       MODE=${MODE%%n*}
+       [ -n "$MODE" ] || MODE=9600 # default mode
+       einfo "Setting speed in /etc/mgetty/mgetty.config to $MODE bps"
+       sed -i "s/speed [0-9]*/speed $MODE/" /etc/mgetty/mgetty.config ; eend $?
+    fi
+
+    einfo "Activating mgetty."
     sed -i 's/^#T0/T0/' /etc/inittab
     sed -i 's/^#T1/T1/' /etc/inittab
-  /sbin/telinit q ; eend $?
+    /sbin/telinit q ; eend $?
+  eoutdent
 fi
 }
 # }}}
@@ -2119,6 +2131,18 @@ fi
 }
 # }}}
 
+# {{{ Support customization
+config_distri(){
+if checkbootparam "distri"; then
+  DISTRI="$(getbootparam 'distri' 2>>$DEBUG)"
+  if [ -r /cdrom/desktop/"$DISTRI".jpg ] ; then
+     [ -n "$BOOTDEBUG" ] && einfo "Debug: bootoption distri found and file /cdrom/desktop/$DISTRI present" && eend 0
+     cp /cdrom/desktop/"$DISTRI".jpg /usr/share/grml/desktop.jpg
+  fi
+fi
+}
+# }}}
+
 ### {{{ backwards compatible stuff
 config_environment(){
   ewarn "config_environment is deprecated. Please set CONFIG_ENVIRONMENT in /etc/grml/autoconfig to 'no'." ; eend 0