From: Russell Steicke Date: Sun, 3 Aug 2008 14:14:01 +0000 (+0800) Subject: Check for pre-commit hook existence. X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=30c34d664cbd6d27272728b3619425ea3ef8744d;p=topgit.git Check for pre-commit hook existence. Running tg in a repo without an active pre-commit hook fails saying grep: .git/hooks/pre-commit: No such file or directory cat: .git/hooks/pre-commit: No such file or directory Even "tg help" does this! So add extra checks for existence of the pre-commit hook. --- diff --git a/tg.sh b/tg.sh index 6896721..c334f70 100644 --- a/tg.sh +++ b/tg.sh @@ -21,9 +21,11 @@ die() setup_hook() { hook_call="\"\$(tg --hooks-path)\"/$1 \"\$@\"" - if fgrep -q "$hook_call" "$git_dir/hooks/$1"; then - # Another job well done! - return + if [ -x "$git_dir/hooks/$1" ]; then + if fgrep -q "$hook_call" "$git_dir/hooks/$1"; then + # Another job well done! + return + fi fi # Prepare incanation if [ -x "$git_dir/hooks/$1" ]; then @@ -35,7 +37,7 @@ setup_hook() { echo "#!/bin/sh" echo "$hook_call" - cat "$git_dir/hooks/$1" + [ -x "$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"