#!/bin/bash #set -euo pipefail #ROOT_DIR="$(git rev-parse --show-toplevel)" #cd "$ROOT_DIR" echo "๐Ÿ“ธ FRAMEY pre-commit ์‹คํ–‰" echo "๐Ÿš€ ์Šคํ…Œ์ด์ง•๋œ JavaํŒŒ์ผ๋งŒ ํ™•์ธ ์ค‘.. " mapfile -t CHANGED_FILES < <( git diff --cached --name-only --diff-filter=ACMR | grep '\.java$' || true ) if [ ${#CHANGED_FILES[@]} -eq 0 ]; then echo "โžก๏ธ ํŒŒ์ผ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์—†์–ด ๊ฒ€์‚ฌ ์ƒ๋žต.." exit 0 fi # ์ค‘๋ณต Gradle Task ๋ฐฉ์ง€ declare -A TASK_MAP for file in "${CHANGED_FILES[@]}"; do case "$file" in framey-common/*) TASK_MAP[":framey-common:checkstyleMain"]=1 ;; framey-web/*) TASK_MAP[":framey-web:checkstyleMain"]=1 ;; framey-monitoring/*) TASK_MAP[":framey-monitoring:checkstyleMain"]=1 ;; framey-application/member-service/*) TASK_MAP[":framey-application:member-service:checkstyleMain"]=1 ;; framey-application/collage-service/*) TASK_MAP[":framey-application:collage-service:checkstyleMain"]=1 ;; framey-application/archive-service/*) TASK_MAP[":framey-application:archive-service:checkstyleMain"]=1 ;; esac done if [ ${#TASK_MAP[@]} -eq 0 ]; then echo "โ˜‘๏ธ ๊ฒ€์‚ฌ ๋Œ€์ƒ ๋ชจ๋“ˆ ์—†์Œ ..." exit 0 fi TASKS=("${!TASK_MAP[@]}") echo "โš ๏ธ Checkstyle ๊ฒ€์‚ฌ ๋Œ€์ƒ:" printf ' %s\n' "${TASKS[@]}" ./gradlew "${TASKS[@]}" --no-daemon || { echo "โ›”๏ธCheckstyle ์‹คํŒจ โ€” ์ปค๋ฐ‹ ์ค‘๋‹จ (์ƒ์„ธ: build/reports/checkstyle/)" exit 1 } echo "๐Ÿ”ฅ pre-commit ํ†ต๊ณผ" # test-code #case "$file" in # */src/main/java/*) # TASK_MAP[":${module}:checkstyleMain"]=1 # ;; # */src/test/java/*) # TASK_MAP[":${module}:checkstyleTest"]=1 # ;; # esac