From efa1909b2fa955e5170eecda8d1d42598c817f07 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Fri, 25 Sep 2015 01:02:27 -0400 Subject: 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. --- pre-commit | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 pre-commit (limited to 'pre-commit') 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 -- cgit v1.2.3