Support automatic execution of scripts on VirtualBox shared folders
[grml-autoconfig.git] / autoconfig.functions
index 04bdc80..5580812 100755 (executable)
@@ -1317,6 +1317,9 @@ config_mixer () {
             IFS='
 '
             for CONTROL in ${=CONTROLS} ; do
+               # such devices can not be controlled with amixer ... unmute
+               [[ "$CONTROL" == *Console* ]] && continue
+
                if ! echo "${CONTROL}" | grep -q -i "mic" ; then
                    if amixer -c $card sget "${CONTROL}" | grep -q 'Capabilities:.*pswitch' ; then
                       amixer -c $card -q set "${CONTROL}" unmute
@@ -1718,7 +1721,7 @@ if checkbootparam 'debs' ; then
      # backwards compatibility: if no path is given get debs from debs/
      DEBS="debs/$DEBS"
    fi
-   einfo "Tring to install debian package(s) ${DEBS}"
+   einfo "Trying to install Debian package(s) ${DEBS}"
    DEBS="$(eval echo ${DCSDIR}/$DEBS)"
    dpkg -i $DEBS ; eend $?
 fi
@@ -2262,9 +2265,38 @@ if $VIRTUALBOX ; then
       eend $?
 
       einfo "Starting VBoxService."
-      VBoxService >/dev/null &
+      VBoxService >/dev/null
       eend $?
 
+      local vbox_automation='/media/sf_automation'
+      if checkbootparam 'vbautomation'; then
+        vbox_automation="$(getbootparam 'vbautomation' 2>>$DEBUG)"
+      fi
+
+      local distri="$(getbootparam 'distri' 2>>$DEBUG)"
+      [ -n "$distri" ] || distri='grml'
+
+      if [ -d "${vbox_automation}" ] ; then
+        einfo "Found shared folders automation directory $vbox_automation"
+        eend 0
+
+        eindent
+        if checkbootparam 'novbautomation' ; then
+          einfo "Bootoption novbautomation found. Disabling automation script execution."
+          eend 0
+        else
+          if ! [ -x "${vbox_automation}/${distri}" ] ; then
+            ewarn "Couldn't find an automation script named ${vbox_automation}/${distri}"
+            eend 1
+          else
+            einfo "Executing '${vbox_automation}/${distri}' now:"
+            "${vbox_automation}/${distri}"
+            eend $?
+          fi
+        fi
+        eoutdent
+      fi
+
     eoutdent
   fi
 fi