Created
October 17, 2018 08:51
-
-
Save tinyjin/056f4a11f9686e34548ed1eff116657a to your computer and use it in GitHub Desktop.
pre-commit-trost
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
# 커밋 인덱스를 기반으로 eslint 검사 대상 파일 배열 생성 | |
STAGED_FILES=$(git diff --cached --name-only --diff-filter=ACM | grep ".js$") | |
# 경우에 따라 커밋 허용/거부 플래그 변수 | |
PASS=true | |
# 커밋할 파일이 없으면 그냥 종료 | |
if [ "$STAGED_FILES" -eq "" ]; then | |
exit 0 | |
fi | |
# eslint 모듈이 설치되엇는지 확인 | |
which ./node_modules/eslint/bin/eslint.js | |
# 설치가 안되어 있다면 설치 안내로그와 함께 종료 | |
if [ "$?" -eq 1 ]; then | |
echo "ESLint가 설치안되있짜낭~!! 설치해졍~" | |
exit 1 | |
fi | |
echo "커밋전 eslint는 확인했겠지~? ㅎㅎ 그럼 어디 한번 볼까?!" | |
# 대상 파일을 순회 | |
for FILE in $STAGED_FILES | |
do | |
# 순회중인 파일에 eslint 검사 | |
./node_modules/eslint/bin/eslint.js "$FILE" --quiet | |
if [ "$?" -eq 0 ]; then | |
# 파일의 eslint 검사가 통과했다면 | |
echo "$FILE - \033[32m[ok]\033[0m" | |
else | |
# 파일의 eslint 검사가 실패했다면, 플래그 변수 false | |
echo "$FILE - \033[31m[failed]\033[0m" | |
PASS=false | |
fi | |
done | |
# 플래그 변수를 검사 | |
# 하나의 파일이라도 실패했다면 [커밋 거부], 모두 통과시에만 [커밋 허용] | |
if ! $PASS; then | |
echo "\033[31m응~ 실패야~\033[0m" | |
exit 1 | |
else | |
echo "\033[32m오 성공이야! 코드 너무 이쁘게 짰는걸~?\033[0m" | |
fi | |
exit $? |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment