X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=scripts%2Fvmount;h=c9dde07c4c4bfe97407f82703c7b9e8b3fc3de7f;hb=880b6c783435a008457417bf46bee5f5ab8acfbf;hp=63741f6654234f68139173a77e5dd01dc2eab5be;hpb=4a62cbb221f2ddbf9726845456a6e9aa0b3c3863;p=util-vserver.git diff --git a/scripts/vmount b/scripts/vmount index 63741f6..c9dde07 100755 --- a/scripts/vmount +++ b/scripts/vmount @@ -53,9 +53,10 @@ the GNU General Public License. This program has absolutely no warranty." declare -a guests -while true; do +while test $# -gt 0; do case "$1" in (--) shift; break;; + (-*) break;; (*) _setVserverDir "$1" guests=( "${guests[@]}" "$VSERVER_DIR" ) @@ -68,7 +69,7 @@ tmp=$(getopt -o +o:t:an --long help,version,debug,bind,rbind,move -n "$0" -- "$@ eval set -- "$tmp" declare -a options - +fstype="" while true; do case "$1" in (--help) showHelp $0 ;; @@ -78,6 +79,7 @@ while true; do options=( "${options[@]}" "$1" ) ;; (-t|-o) options=( "${options[@]}" "$1" "$2" ) + test "$1" != "-t" || fstype="$1" shift ;; (--) shift; break;; @@ -88,13 +90,13 @@ done case "x$1" in (x/*|x) ;; - (*) panic $"vmount: the source must be an absolute path";; + (*) test "$fstype" = "nfs" || panic $"vmount: the source must be an absolute path";; esac rc=0 for guest in "${guests[@]}"; do pushd "$guest/vdir" &> /dev/null - $_VNAMESPACE -e "$guest" -- \ + callInNamespace "$guest" \ $_SECURE_MOUNT --chroot --fstab "$guest/fstab" "${options[@]}" "$@" test "$?" -eq 0 || rc=$? popd &> /dev/null