chiark / gitweb /
tg.sh: setup_hook(): Test existence instead of -x
authorPetr Baudis <pasky@suse.cz>
Sun, 3 Aug 2008 14:28:41 +0000 (16:28 +0200)
committerPetr Baudis <pasky@suse.cz>
Sun, 3 Aug 2008 14:28:41 +0000 (16:28 +0200)
Also, be more set -e friendly in boolean lists.

tg.sh

diff --git a/tg.sh b/tg.sh
index c334f70ee420797c3de7b00ea293da5fefedd061..e27ff3072d5da60dcc2e45dd7b806de6fa817625 100644 (file)
--- a/tg.sh
+++ b/tg.sh
@@ -21,11 +21,10 @@ die()
 setup_hook()
 {
        hook_call="\"\$(tg --hooks-path)\"/$1 \"\$@\""
-       if [ -x "$git_dir/hooks/$1" ]; then
-               if fgrep -q "$hook_call" "$git_dir/hooks/$1"; then
-                       # Another job well done!
-                       return
-               fi
+       if [ -f "$git_dir/hooks/$1" ] &&
+          fgrep -q "$hook_call" "$git_dir/hooks/$1"; then
+               # Another job well done!
+               return
        fi
        # Prepare incanation
        if [ -x "$git_dir/hooks/$1" ]; then
@@ -37,7 +36,7 @@ setup_hook()
        {
                echo "#!/bin/sh"
                echo "$hook_call"
-               [ -x "$git_dir/hooks/$1" ] && cat "$git_dir/hooks/$1"
+               [ ! -s "$git_dir/hooks/$1" ] || cat "$git_dir/hooks/$1"
        } >"$git_dir/hooks/$1+"
        chmod a+x "$git_dir/hooks/$1+"
        mv "$git_dir/hooks/$1+" "$git_dir/hooks/$1"