X-Git-Url: http://git.grml.org/?p=grml-autoconfig.git;a=blobdiff_plain;f=autoconfig.functions;h=34ff4f8e09338af218ee5fe6ffc92443e46816a7;hp=55808124d002de808e841712c044ff8cb044df0d;hb=cf7b0ee4786cdd92c4ae5f34fe7b20bd209abe0e;hpb=a894a4342611059ddbf7083928f4be4557adedd2 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