aboutsummaryrefslogtreecommitdiffstats
path: root/pre-commit
diff options
context:
space:
mode:
authorTeddy Wing2015-09-27 13:20:55 -0400
committerTeddy Wing2015-09-27 13:20:55 -0400
commit2a88fb92f4c1fbb3533e589d5c9f4b5c17595d3f (patch)
treec8b4ae5f5e20ae0a2e543d98662bc3bf90997488 /pre-commit
parent50631f85e73eda9d6738f5993ff5cf26198f8697 (diff)
downloadgit-hook-pre-commit-python-javascript-syntax-linter-2a88fb92f4c1fbb3533e589d5c9f4b5c17595d3f.tar.bz2
Add JavaScript linting and tests
* Add sample malformed JavaScript files to lint on * In our tests, copy the `node_modules` directory to make `jshint` available, then validate that we're correctly linting the staged JS file * In our pre-commit hook, lint the staged JavaScript files. If either of our linting commands fail then exit 1 to abort the commit.
Diffstat (limited to 'pre-commit')
-rw-r--r--pre-commit13
1 files changed, 13 insertions, 0 deletions
diff --git a/pre-commit b/pre-commit
index aefd1b7..16053a2 100644
--- a/pre-commit
+++ b/pre-commit
@@ -17,7 +17,20 @@ fi
# 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)
+javascript_files=$(echo $files | grep .*\.js)
+flake_exit=0
+jshint_exit=0
if [ -n "$python_files" ]; then
flake8 $python_files
+ flake_exit=$?
+fi
+
+if [ -n "$javascript_files" ]; then
+ ./node_modules/.bin/jshint $javascript_files
+ jshint_exit=$?
+fi
+
+if [ !$flake_exit ] || [ !$jshint_exit ]; then
+ exit 1
fi