mingliangguo
1/24/2017 - 3:40 PM

JSHint and JSCS pre-commit hook

JSHint and JSCS pre-commit hook

#!/bin/sh
# pre-commit git hook.

files=$(git diff --cached --name-only --diff-filter=ACMR -- \*.js **/*.js)
pass=true

if [ "$files" != "" ]; then

  for file in ${files}; do

    # Run JSHint validation
    result=$(jshint ${file})
    if [ "$result" != "" ]; then
      echo $result
      pass=false
    fi

    # Run JSCS validation
    result=$(jscs ${file})
    if [ "$result" != "No code style errors found." ]; then
      echo $result
      pass=false
    fi

  done

fi

if $pass; then
  exit 0
else
  echo ""
  echo "COMMIT FAILED:"
  echo "Some JavaScript files are invalid. Please fix errors and try committing again."
  exit 1
fi