Skip to content

Commit b4c7484

Browse files
committed
update: make format 実行時に、どのファイルが変更されたかを確認できる文を追加
1 parent 921af52 commit b4c7484

File tree

1 file changed

+30
-2
lines changed

1 file changed

+30
-2
lines changed

Makefile

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,10 +88,38 @@ format:
8888
# 指定ファイルがある場合、そのファイルにclang-formatを適用する
8989
ifdef FILES
9090
clang-format -i -style=file $(FILES)
91+
@ echo "フォーマットを適用しました: $(FILES)"
9192
# ない場合、変更されたファイルのうち、cpp、hファイルにclang-formatを適用する
9293
else
93-
git diff origin/main --name-only | awk '/\.cpp$$|\.h$$/ {print $$1}' | xargs clang-format -i -style=file
94+
# 変更されたファイルと未追跡のファイル (新規追加など) の両方を検出
95+
@{ \
96+
CANDIDATE_FILES=$$( (git diff origin/main --name-only; git ls-files --others --exclude-standard) | grep -E '\.cpp$$|\.h$$' || true ); \
97+
ACTUALLY_FORMATTED_FILES=""; \
98+
FORMATTED_COUNT=0; \
99+
if [ -n "$$CANDIDATE_FILES" ]; then \
100+
for FILE_PATH in $$CANDIDATE_FILES; do \
101+
REPLACEMENTS_XML=$$(clang-format -style=file --output-replacements-xml "$$FILE_PATH" 2>/dev/null); \
102+
if echo "$$REPLACEMENTS_XML" | grep -q "<replacement "; then \
103+
clang-format -i -style=file "$$FILE_PATH"; \
104+
if [ -z "$$ACTUALLY_FORMATTED_FILES" ]; then \
105+
ACTUALLY_FORMATTED_FILES="$$FILE_PATH"; \
106+
else \
107+
ACTUALLY_FORMATTED_FILES="$${ACTUALLY_FORMATTED_FILES}\n$$FILE_PATH"; \
108+
fi; \
109+
FORMATTED_COUNT=$$(($$FORMATTED_COUNT + 1)); \
110+
fi; \
111+
done; \
112+
if [ $$FORMATTED_COUNT -gt 0 ]; then \
113+
echo "以下のファイルにフォーマットを適用しました ($$FORMATTED_COUNT 件):"; \
114+
printf "%b\n" "$$ACTUALLY_FORMATTED_FILES"; \
115+
else \
116+
echo "検査したファイルは全てフォーマット済みでした。適用された変更はありません。"; \
117+
fi; \
118+
else \
119+
echo "フォーマットをチェックする対象の .cpp または .h ファイルがありません。"; \
120+
fi \
121+
}
94122
endif
95123

96124
format-check:
97-
find ./test ./modules -type f -name "*.cpp" -o -name "*.h" | xargs clang-format --dry-run --Werror *.h *.cpp
125+
find ./tests ./modules -type f -name "*.cpp" -o -name "*.h" | xargs clang-format --dry-run --Werror *.h *.cpp

0 commit comments

Comments
 (0)