aboutsummaryrefslogtreecommitdiff
path: root/misc/hooks/pre-commit
diff options
context:
space:
mode:
authorRémi Verschelde2017-02-12 00:51:14 +0100
committerRémi Verschelde2017-03-18 23:29:45 +0100
commit9d2c0f6c6e2603fa36fb376f9b0ab7d7d02ff8c8 (patch)
tree8634e96768c7622fde0caa0878922824276e473d /misc/hooks/pre-commit
parent19f90b59d5aa6ed8c7a9efaae0565aa48f1bf6cb (diff)
downloadgodot-9d2c0f6c6e2603fa36fb376f9b0ab7d7d02ff8c8.tar.gz
godot-9d2c0f6c6e2603fa36fb376f9b0ab7d7d02ff8c8.tar.zst
godot-9d2c0f6c6e2603fa36fb376f9b0ab7d7d02ff8c8.zip
clang-format: Add pre-commit hook
Derived from https://github.com/githubbrowser/Pre-commit-hooks and https://gitlab.cern.ch/GeantV/geant/blob/master/hooks/pre-commit-clang-format (cherry picked from commit 0e4ee5935a000f5d6de63d3c8ad15e1baf80cd0e)
Diffstat (limited to 'misc/hooks/pre-commit')
-rwxr-xr-xmisc/hooks/pre-commit50
1 files changed, 50 insertions, 0 deletions
diff --git a/misc/hooks/pre-commit b/misc/hooks/pre-commit
new file mode 100755
index 000000000..fc50ed70e
--- /dev/null
+++ b/misc/hooks/pre-commit
@@ -0,0 +1,50 @@
+#!/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 part of 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
+
+
+###########################################################
+# CONFIGURATION:
+# 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="pre-commit-compile pre-commit-uncrustify"
+HOOKS="pre-commit-clang-format"
+###########################################################
+# There should be no need to change anything below this line.
+
+. "$(dirname -- "$0")/canonicalize_filename.sh"
+
+# exit on error
+set -e
+
+# Absolute path to this script, e.g. /home/user/bin/foo.sh
+SCRIPT="$(canonicalize_filename "$0")"
+
+# Absolute path this script is in, thus /home/user/bin
+SCRIPTPATH="$(dirname -- "$SCRIPT")"
+
+
+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 "$SCRIPTPATH/$hook" ]; then
+ "$SCRIPTPATH/$hook"
+ if [ $? != 0 ]; then
+ exit 1
+ fi
+ else
+ echo "Error: file $hook not found."
+ echo "Aborting commit. Make sure the hook is in $SCRIPTPATH and executable."
+ echo "You can disable it by removing it from the list in $SCRIPT."
+ echo "You can skip all pre-commit hooks with --no-verify (not recommended)."
+ exit 1
+ fi
+done