From cf7b0ee4786cdd92c4ae5f34fe7b20bd209abe0e Mon Sep 17 00:00:00 2001 From: Michael Prokop Date: Tue, 25 Feb 2014 11:04:29 +0100 Subject: [PATCH] vbautomation takes shared folder name without prefix + improve timing Use VBoxControl to check for available shared folders. By default the VBoxService starts up but it takes some time until the automount folder is available, so give it some further time. --- autoconfig.functions | 57 +++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 41 insertions(+), 16 deletions(-) diff --git a/autoconfig.functions b/autoconfig.functions index 5580812..34ff4f8 100755 --- a/autoconfig.functions +++ b/autoconfig.functions @@ -2268,33 +2268,58 @@ if $VIRTUALBOX ; then VBoxService >/dev/null eend $? - local vbox_automation='/media/sf_automation' + local vbautomation='automation' if checkbootparam 'vbautomation'; then - vbox_automation="$(getbootparam 'vbautomation' 2>>$DEBUG)" + vbautomation="$(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" + if ! VBoxControl sharedfolder list | egrep -q "^[0-9]+ - ${vbautomation}$" ; then + ewarn "No automount shared folder '$vbautomation' available" + eend 0 + else + einfo "Found automount shared folder '$vbautomation'" eend 0 + local distri="$(getbootparam 'distri' 2>>$DEBUG)" + [ -n "$distri" ] || distri='grml' + + local vbox_auto_sf="/media/sf_${vbautomation}" + + sleep 1 # ugly but necessary + + counter=10 eindent - if checkbootparam 'novbautomation' ; then - einfo "Bootoption novbautomation found. Disabling automation script execution." + while ! [ -d "${vbox_auto_sf}" ] && [[ "$counter" != 0 ]]; do + einfo "Waiting another second to retry access to ${vbox_auto_sf}" + sleep 1 + counter=$(( counter-1 )) eend 0 + done + eoutdent + + if ! [ -d "${vbox_auto_sf}" ] ; then + eerror "Giving up trying to access folder ${vbox_auto_sf} which doesn't seem to exist" + eend 1 else - if ! [ -x "${vbox_automation}/${distri}" ] ; then - ewarn "Couldn't find an automation script named ${vbox_automation}/${distri}" - eend 1 + einfo "Found shared folders automation directory $vbox_auto_sf" + eend 0 + + eindent + if checkbootparam 'novbautomation' ; then + einfo "Bootoption novbautomation found. Disabling automation script execution." + eend 0 else - einfo "Executing '${vbox_automation}/${distri}' now:" - "${vbox_automation}/${distri}" - eend $? + if ! [ -x "${vbox_auto_sf}/${distri}" ] ; then + ewarn "Couldn't find an automation script named ${vbox_auto_sf}/${distri}" + eend 1 + else + einfo "Executing '${vbox_auto_sf}/${distri}' now:" + "${vbox_auto_sf}/${distri}" + eend $? + fi fi + eoutdent fi - eoutdent fi eoutdent -- 2.1.4