add jscs pre-commit check
This commit is contained in:
37
git/hooks/jscs.pre-commit
Executable file
37
git/hooks/jscs.pre-commit
Executable file
@@ -0,0 +1,37 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# JSCS Pre-Commit
|
||||||
|
# If a JavaScript file is trying to be committed and it fails style checking
|
||||||
|
# then fail the commit
|
||||||
|
|
||||||
|
EXIT_CODE=0
|
||||||
|
COLOR_RED="\x1B[31m"
|
||||||
|
COLOR_YELLOW="\x1B[1;33m"
|
||||||
|
COLOR_GREEN="\x1B[32m"
|
||||||
|
COLOR_NONE="\x1B[0m"
|
||||||
|
|
||||||
|
if ! jscs > /dev/null 2>&1; then
|
||||||
|
echo "${COLOR_YELLOW}JSCS is not installed. Exiting.${COLOR_NONE}"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
repo=$( git rev-parse --show-toplevel )
|
||||||
|
|
||||||
|
for file in $( exec git diff-index --cached --name-only HEAD ); do
|
||||||
|
if [ ${file: -3} == ".js" ]; then
|
||||||
|
status=$( exec git status --porcelain $file )
|
||||||
|
|
||||||
|
if [[ $status != D* ]]; then
|
||||||
|
jscs ${repo}/${file}
|
||||||
|
EXIT_CODE=$((${EXIT_CODE} + $?))
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
if [[ ${EXIT_CODE} -ne 0 ]]; then
|
||||||
|
echo "${COLOR_RED}✘ JSCS detected syntax problems.${COLOR_NONE}"
|
||||||
|
else
|
||||||
|
echo "${COLOR_GREEN}✔ JSCS detected no errors.${COLOR_NONE}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit $((${EXIT_CODE}))
|
||||||
@@ -21,7 +21,6 @@ for file in $( exec git diff-index --cached --name-only HEAD ); do
|
|||||||
status=$( exec git status --porcelain $file )
|
status=$( exec git status --porcelain $file )
|
||||||
|
|
||||||
if [[ $status != D* ]]; then
|
if [[ $status != D* ]]; then
|
||||||
# ${jshint} ${repo}/${file} >/dev/null 2>&1
|
|
||||||
jshint ${repo}/${file}
|
jshint ${repo}/${file}
|
||||||
EXIT_CODE=$((${EXIT_CODE} + $?))
|
EXIT_CODE=$((${EXIT_CODE} + $?))
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user