diff options
Diffstat (limited to 'core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/50_umounter.inc')
-rwxr-xr-x | core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/50_umounter.inc | 35 |
1 files changed, 26 insertions, 9 deletions
diff --git a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/50_umounter.inc b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/50_umounter.inc index e161b961..dc92061a 100755 --- a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/50_umounter.inc +++ b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/50_umounter.inc @@ -1,12 +1,29 @@ -umount_home() { - umount /home/"${LOCALUSER}"/PERSISTENT && logger "openslx unmounter: umounted home (PERSISTENT)." \ - || logger "openslx unmounter: could not home (PERSISTENT)!" -} +umount_all() { + local HOME + local WEBDAV="(webdav) " + local UMOUNT + get_shares # fills array ROHSHARES; row 1+ share infos from (shares-)CONFIGFILE + + for (( CONFIGROW = 1; CONFIGROW < ${#ROHSHARES[@]}; CONFIGROW++ )); do # row 1 is homedir, 2+ shares + SHAREPATH=$(echo "${ROHSHARES[CONFIGROW]}" | cut -f 1 -d$'\t') # Could be a webdav share... + SHARENAME=$(echo "${ROHSHARES[CONFIGROW]}" | cut -f 3 -d$'\t' | sed 's/ /_/g') + if [ "${SHARENAME:0:5}" == "Home-" ]; then + HOME="home " + UMOUNT="${USERHOMEDIR}" + else + HOME="" + # if there's no sharename let's at least try with SHARELETTER: + [ -z "${SHARENAME}" ] && SHARENAME=$(echo "${ROHSHARES[CONFIGROW]}" | cut -f 2 -d$'\t' | sed 's/://g') + UMOUNT="${USERHOME}/${SHARENAME}" + fi -umount_shares() { - index=0 - for SHARE in $( mount | grep SHARE | tr -s ' ' | cut -f 3 -d " " ); do - umount "${SHARE}" && logger "openslx unmounter: umounted ${SHARE}." \ - || logger "openslx unmounter: could not umount ${SHARE}!" + if [ "${SHAREPATH:0:4}" == 'http' ]; then + fusermount -u "$UMOUNT" && logger "openslx umounter: umounted ${HOME}${WEBDAV} ${UMOUNT}." \ + || logger "openslx umounter: could not umount ${HOME}${WEBDAV} ${UMOUNT}!" + else + umount "${UMOUNT}" && logger "openslx umounter: umounted $HOME ${UMOUNT}." \ + || logger "openslx umounter: could not umount ${HOME}${UMOUNT}!" + fi done } + |