From 27fea926600db38be6687d7591498ad8ec64bc81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E1=84=92=E1=85=A1=E1=86=AB=E1=84=86=E1=85=A1=E1=86=AB?= =?UTF-8?q?=E1=84=8E=E1=85=A5=E1=86=AF?= Date: Fri, 25 Jul 2025 10:20:39 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20=EC=8A=A4=ED=85=8C=EC=9D=B4?= =?UTF-8?q?=EC=A7=95=EB=90=9C=20=ED=8C=8C=EC=9D=BC=20=EC=B2=98=EB=A6=AC=20?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit bin/aic: --all 플래그가 없을 때 스테이징된 파일만 정확히 필터링 --- bin/aic | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/bin/aic b/bin/aic index b2a2095..4fe1496 100755 --- a/bin/aic +++ b/bin/aic @@ -472,6 +472,13 @@ STAGED_DIFF=$(git diff --cached 2>/dev/null) UNSTAGED_DIFF=$(git diff 2>/dev/null) STATUS=$(git status --porcelain 2>/dev/null) +# staged 파일만 필터링 (--all 플래그가 없을 때) +if [ "$STAGE_ALL" = false ]; then + STAGED_STATUS=$(echo "$STATUS" | grep '^[AMDRC]') +else + STAGED_STATUS="$STATUS" +fi + # staged 파일이 있는지 확인 if [ -z "$STAGED_DIFF" ]; then echo -e "${YELLOW}$(msg "no_staged_files")${NC}" @@ -521,7 +528,7 @@ BODY (after TWO blank lines): - Use English language Git Status: -$STATUS +$STAGED_STATUS Changes Analysis: $(echo "$ANALYSIS_TEXT" | head -20) @@ -559,7 +566,7 @@ BODY (after TWO blank lines): - Use Korean language Git Status: -$STATUS +$STAGED_STATUS Changes Analysis: $(echo "$ANALYSIS_TEXT" | head -20) @@ -637,9 +644,9 @@ if [ -z "$AI_MESSAGE" ]; then # 언어별 단순 프롬프트 if [ "$LANGUAGE" = "en" ]; then - SIMPLE_PROMPT="Generate a detailed English commit message with title and body for: $(echo "$STATUS" | head -3 | tr '\n' ' ')" + SIMPLE_PROMPT="Generate a detailed English commit message with title and body for: $(echo "$STAGED_STATUS" | head -3 | tr '\n' ' ')" else - SIMPLE_PROMPT="Generate a detailed Korean commit message with title and body for: $(echo "$STATUS" | head -3 | tr '\n' ' ')" + SIMPLE_PROMPT="Generate a detailed Korean commit message with title and body for: $(echo "$STAGED_STATUS" | head -3 | tr '\n' ' ')" fi # 단순 접근법도 애니메이션과 함께 @@ -735,9 +742,16 @@ fi # 변경사항 요약 출력 echo "" echo -e "${CYAN}$(msg "change_summary")${NC}" -ADDED_FILES=$(echo "$STATUS" | grep "^??\|^A" | wc -l) -MODIFIED_FILES=$(echo "$STATUS" | grep "^.M\|^M" | wc -l) -DELETED_FILES=$(echo "$STATUS" | grep "^.D\|^D" | wc -l) +# STAGE_ALL 플래그에 따라 파일 카운트 계산 +if [ "$STAGE_ALL" = false ]; then + ADDED_FILES=$(echo "$STAGED_STATUS" | grep "^A" | wc -l) + MODIFIED_FILES=$(echo "$STAGED_STATUS" | grep "^M" | wc -l) + DELETED_FILES=$(echo "$STAGED_STATUS" | grep "^D" | wc -l) +else + ADDED_FILES=$(echo "$STATUS" | grep "^??\|^A" | wc -l) + MODIFIED_FILES=$(echo "$STATUS" | grep "^.M\|^M" | wc -l) + DELETED_FILES=$(echo "$STATUS" | grep "^.D\|^D" | wc -l) +fi [ "$ADDED_FILES" -gt 0 ] && echo -e " ${GREEN}$(msg "new_files" "$ADDED_FILES")${NC}" [ "$MODIFIED_FILES" -gt 0 ] && echo -e " ${YELLOW}$(msg "modified_files" "$MODIFIED_FILES")${NC}"