diff options
Diffstat (limited to '.githooks')
| -rw-r--r-- | .githooks/pre-commit | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/.githooks/pre-commit b/.githooks/pre-commit new file mode 100644 index 0000000..220fc19 --- /dev/null +++ b/.githooks/pre-commit @@ -0,0 +1,13 @@ +#!/bin/sh +# .githooks/pre-commit +# This repo is checked out on Windows, which doesn't reliably preserve +# the executable bit (that's why core.fileMode is false - see +# statuspage/README.md). Without this hook, a newly-added *.sh file +# silently stages as non-executable, and render.sh skips non-executable +# files with no error - a broken check script wouldn't even show up as +# a down/warn row, it'd just vanish. +# +# Force +x on every staged *.sh file so that can't happen. +git diff --cached --name-only --diff-filter=ACM -- '*.sh' | while IFS= read -r f; do + git update-index --chmod=+x "$f" +done |
