#!/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