aboutsummaryrefslogtreecommitdiffstats
path: root/pre-commit
diff options
context:
space:
mode:
authorTeddy Wing2015-09-25 01:02:27 -0400
committerTeddy Wing2015-09-25 01:02:27 -0400
commitefa1909b2fa955e5170eecda8d1d42598c817f07 (patch)
treefaaecc30b46a4afde486294497a3bd708711e633 /pre-commit
parentf6bb0d359c7c46eb41a3d760a85f2cc2aad3a79d (diff)
downloadgit-hook-pre-commit-python-javascript-syntax-linter-efa1909b2fa955e5170eecda8d1d42598c817f07.tar.bz2
Create 'pre-commit', add Python tests
* Create our 'pre-commit' hook script that runs flake8 on Python files in the staging area. * Update test setup to create a git repository for testing. * Add a test for the Python linter to confirm that it produces the correct output when trying to commit and that it only checks files in the staging index.
Diffstat (limited to 'pre-commit')
-rw-r--r--pre-commit23
1 files changed, 23 insertions, 0 deletions
diff --git a/pre-commit b/pre-commit
new file mode 100644
index 0000000..aefd1b7
--- /dev/null
+++ b/pre-commit
@@ -0,0 +1,23 @@
+#!/bin/sh
+#
+# Check syntax of Python and JavaScript files.
+
+if git rev-parse --verify HEAD >/dev/null 2>&1
+then
+ against=HEAD
+else
+ # Initial commit: diff against an empty tree object
+ against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
+fi
+
+# Redirect output to stderr.
+# exec 1>&2
+
+# test $(git diff --cached --name-only --diff-filter=A -z $against |
+# LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0
+files=$(git diff --cached --name-only --diff-filter=AMR -z $against)
+python_files=$(echo $files | grep .*\.py)
+
+if [ -n "$python_files" ]; then
+ flake8 $python_files
+fi