#!/bin/sh # JSHint Pre-Commit # If a JavaScript file is trying to be committed and it fails linting # then fail the commit EXIT_CODE=0 COLOR_RED="\x1B[31m" COLOR_GREEN="\x1B[32m" COLOR_NONE="\x1B[0m" repo=$( git rev-parse --show-toplevel ) for file in $( exec git diff-index --cached --name-only HEAD ); do if [[ $file == *".js$"* ]]; then status=$( exec git status --porcelain $file ) if [[ $status != D* ]]; then # ${jshint} ${repo}/${file} >/dev/null 2>&1 jshint ${repo}/${file} EXIT_CODE=$((${EXIT_CODE} + $?)) fi fi done echo "" if [[ ${EXIT_CODE} -ne 0 ]]; then echo "${COLOR_RED}✘ JSHINT detected syntax problems.${COLOR_NONE}" else echo "${COLOR_GREEN}✔ JSHINT detected no errors.${COLOR_NONE}" fi exit $((${EXIT_CODE}))