Created
April 3, 2017 06:00
-
-
Save graynun/f06e68c8a4cddc4b6da55e1ce684dd94 to your computer and use it in GitHub Desktop.
pre-commit hook for eslint in Knowre
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
ESLINT="$(git rev-parse --show-toplevel)/node_modules/.bin/eslint" | |
if [[ ! -x "$ESLINT" ]]; then | |
echo "\t\033[41mPlease install ESlint\033[0m (npm i --save --save-exact --dev eslint)" | |
exit 1 | |
fi | |
STAGED_FILES=$(git diff --cached --name-only --diff-filter=ACM | grep ".jsx\{0,1\}$"| grep -v "node_modules") | |
if [[ "$STAGED_FILES" = "" ]]; then | |
exit 0 | |
fi | |
PASS=true | |
echo "\nValidating Javascript:\n" | |
# Check for eslint | |
which eslint &> /dev/null | |
if [[ "$?" == 1 ]]; then | |
echo "\t\033[41mPlease install ESlint\033[0m" | |
exit 1 | |
fi | |
for FILE in $STAGED_FILES | |
do | |
eslint "$FILE" | |
if [[ "$?" == 0 ]]; then | |
echo "\t\033[32mESLint Passed: $FILE\033[0m" | |
else | |
echo "\t\033[41mESLint Failed: $FILE\033[0m" | |
PASS=false | |
fi | |
done | |
echo "\nJavascript validation completed!\n" | |
if ! $PASS; then | |
echo "\033[41mCOMMIT FAILED:\033[0m Your commit contains files that should pass ESLint but do not. Please fix the ESLint errors and try again.\n" | |
exit 1 | |
else | |
echo "\033[42mCOMMIT SUCCEEDED\033[0m\n" | |
fi | |
exit $? |
린트에러가 발생후 린트를 잡고 git add 를 안한상태로 다시 커밋을 돌렸을때,
린트에러가 있는 상태로 커밋이 들어가는 경우가 있어 옵셔널로 넣습니다.
린트직전에 넣으시면 될거 같네요.
# Check STAGED_HAVE_UNSTAGE_CHANGE
UNSTAGED_FILES=$(git diff --name-only --diff-filter=ACM | grep ".jsx\{0,1\}$"| grep -v "node_modules")
for U_FILE in $UNSTAGED_FILES
do
for S_FILE in $STAGED_FILES
do
if [[ "$S_FILE" = "$U_FILE" ]]; then
echo "\t\033[41mTHERE ARE SOME UNSTAGE CHECKUP PLZ..\033[0m"
exit 1
fi
done
done
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Pre-commit hook used in Knowre, based on pre-commit-eslint linked below:
https://gist.github.com/linhmtran168/2286aeafe747e78f53bf