X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Fscripts%2Fvprocunhide;h=20f858bfc4b527ba68e461096feab0ff249d85c6;hb=d0bd106ffcd793b75d857804b8f3d045c20debc8;hp=8416a46e91ac6cd34dffe0eb2028d61023d88e4a;hpb=4e689f793ce000063c3390cc074b52385bffcbe3;p=util-vserver.git diff --git a/util-vserver/scripts/vprocunhide b/util-vserver/scripts/vprocunhide index 8416a46..20f858b 100755 --- a/util-vserver/scripts/vprocunhide +++ b/util-vserver/scripts/vprocunhide @@ -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