X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Fscripts%2Fvprocunhide;h=24a4a475266e023b3154be48a230a36f7c785b8c;hb=bbda8c655efb11b84c25b854aaa2cb4d42ebf122;hp=8416a46e91ac6cd34dffe0eb2028d61023d88e4a;hpb=4e689f793ce000063c3390cc074b52385bffcbe3;p=util-vserver.git diff --git a/util-vserver/scripts/vprocunhide b/util-vserver/scripts/vprocunhide index 8416a46..24a4a47 100755 --- a/util-vserver/scripts/vprocunhide +++ b/util-vserver/scripts/vprocunhide @@ -18,7 +18,7 @@ : ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars} test -e "$UTIL_VSERVER_VARS" || { - echo $"Can not find util-vserver installation; aborting...">&2 + echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2 exit 1 } . "$UTIL_VSERVER_VARS" @@ -31,8 +31,9 @@ function showHelp() Return values: 0 ... no errors - 1 ... some files where changes but there occured errors on other ones - 2 ... operation failed on every file + 1 ... configuration error + 2 ... some files where changes but there occured errors on other ones + 3 ... operation failed on every file Report bugs to <$PACKAGE_BUGREPORT>." exit 0 @@ -65,18 +66,29 @@ findFile UNHIDEFILE \ ok=1 passed= while read filename; do - param= + params=() + + case "$filename" in + (\#*) continue;; + (-*) params=( --admin --hide ); filename=${filename#-};; + (~*) params=( --admin --watch --hide ); filename=${filename#~};; + (:*) params=( --watch --hide ); filename=${filename#:};; + (!*) params=( --hide ); filename=${filename#!};; + (+*) params=( --!hide ); filename=${filename#+};; + (*) params=( --!hide );; + esac + case "$filename" in - */) param=-R;; - *) ;; + (*/) params=( "${params[@]}" -R );; + (*) ;; esac set -- $filename test -e "$1" || continue - $_SETATTR -x $param --!hide "$@" && passed=1 || ok= + $_SETATTR -x "${params[@]}" "$@" && passed=1 || ok= done <"$UNHIDEFILE" test "$ok" && exit 0 || \ -test "$passed" && exit 1 || \ -exit 2 +test "$passed" && exit 2 || \ +exit 3