33 lines
815 B
Bash
Executable File
33 lines
815 B
Bash
Executable File
#!/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}))
|