mineclonia-cd2025/tools/git-pre-commit-hook

33 lines
933 B
Bash
Executable File

#!/bin/bash
# stolen from https://gist.github.com/Gethe/bbcc180770eb9edeebaf83c96844c5df
# copy file to .git/hooks/pre-commit
# needs bash and luacheck installed and optionally minetest_check_translations in $translate_check_py
git_root=$(git rev-parse --show-toplevel)
translate_check_py=../../../minetest_check_translations/i18ncheck.py
exitCode=
for file in $(git diff --cached --name-only | grep -E '\.lua$'); do
# we only want to check the staged changes, not any un-staged changes
if [[ -f "$file" ]]; then
luacheck "$file" --formatter plain
fi
if [[ $? -eq 1 ]]; then
# we want to go through all files before we exit, so just store it for now
exitCode=1
fi
done
if [ -x "$git_root/$translate_check_py" ]; then
cd "$git_root"
if [ "$($git_root/$translate_check_py mods |grep 'Test FAILED!')" != "" ]; then
$translate_check_py mods/
exitCode=1
fi
cd -
fi
exit $exitCode