41 lines
956 B
Bash
Executable File
41 lines
956 B
Bash
Executable File
#!/bin/sh
|
|
set -e
|
|
|
|
if [ -n "$1" ]; then
|
|
CANVAS_ROOT=$1
|
|
fi
|
|
|
|
if [ -z "$2" ]; then
|
|
$0 "$CANVAS_ROOT" $CANVAS_ROOT".git" "."
|
|
for plugin in $(find $CANVAS_ROOT"gems/plugins" -name .git | sort); do
|
|
$0 "$CANVAS_ROOT" $plugin "../../.."
|
|
done
|
|
exit 0
|
|
fi
|
|
|
|
GIT_DIR=$2
|
|
HOOKS_PREFIX=$3
|
|
|
|
if [ ! -d "$GIT_DIR" ]; then
|
|
exit 0
|
|
fi
|
|
|
|
echo running for git dir $GIT_DIR
|
|
|
|
GLOB_PATTERN=$CANVAS_ROOT"hooks/*"
|
|
|
|
for hook in $GLOB_PATTERN; do
|
|
hook_name=${hook##*/}
|
|
git_path="$GIT_DIR/hooks/$hook_name"
|
|
# make sure file exists
|
|
touch "$git_path"
|
|
# make sure it has a shebang prepending if necessary
|
|
grep -qF -- "#!" "$git_path" || (echo "#!/bin/sh" | cat - $git_path > "$git_path-temp" && mv "$git_path-temp" $git_path)
|
|
# make sure it is executable
|
|
[ -x "$git_path" ] || chmod +x "$git_path"
|
|
# # put in line to call this hook
|
|
grep -qF -- "$HOOKS_PREFIX/hooks/$hook_name" "$git_path" || echo "$HOOKS_PREFIX/hooks/$hook_name" >> "$git_path"
|
|
done
|
|
|
|
exit 0
|