gstreamer/scripts/git-hooks/multi-pre-commit.hook
Nirbheek Chauhan fcf590a86e git-hooks: Not all OSes ship Python 3 under "python"
macOS doesn't, for instance. Use a shell script to detect which python
to run, which is always available on all OSes due to how git is
packaged on Windows.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5060>
2023-07-20 11:00:35 +00:00

50 lines
1.5 KiB
Bash
Executable file

#!/bin/sh
# Git pre-commit hook that runs multiple hooks specified in $HOOKS.
# Make sure this script is executable. Bypass hooks with git commit --no-verify.
# This file is inspired by a set of unofficial pre-commit hooks available
# at github.
# Link: https://github.com/githubbrowser/Pre-commit-hooks
# Contact: David Martin, david.martin.mailbox@googlemail.com
###########################################################
# SETTINGS:
# pre-commit hooks to be executed. They should be in the same .git/hooks/ folder
# as this script. Hooks should return 0 if successful and nonzero to cancel the
# commit. They are executed in the order in which they are listed.
###########################################################
HOOKS="scripts/git-hooks/pre-commit.hook scripts/git-hooks/pre-commit-invoke-python.hook"
# exit on error
set -e
if [ "$GST_DISABLE_PRE_COMMIT_HOOKS" = "1" ]
then
echo "Pre-commits hooks disabled by env GST_DISABLE_PRE_COMMIT_HOOKS."
exit 0
fi
echo $PWD
for hook in $HOOKS
do
echo "Running hook: $hook"
# run hook if it exists
# if it returns with nonzero exit with 1 and thus abort the commit
if [ -f "$PWD/$hook" ]; then
"$PWD/$hook"
if [ $? != 0 ]; then
exit 1
fi
else
echo "Error: file $hook not found."
echo "Aborting commit. Make sure the hook is at $PWD/$hook and executable."
echo "You can disable it by removing it from the list"
echo "You can skip all pre-commit hooks with --no-verify (not recommended)."
exit 1
fi
done