@@ -11,7 +11,9 @@ export LLVM_CONFIG=${LLVM_CONFIG:-llvm-config}
11
11
LLVM_PREFIX=${LLVM_PREFIX:- $(${LLVM_CONFIG} --prefix)}
12
12
CLANG_TIDY=${CLANG_TIDY:- $(${LLVM_CONFIG} --bindir)/ clang-tidy}
13
13
CLANG_APPLY_REPLACEMENTS=${CLANG_APPLY_REPLACEMENTS:- $(${LLVM_CONFIG} --bindir)/ clang-apply-replacements}
14
- FIX_YAML=clang-tidy-fixes.yaml
14
+ FIX_YAML=" ${FIX_YAML:- clang-tidy-fixes.yaml} "
15
+ CLANG_TIDY_APPLY_FIXES=" ${CLANG_TIDY_APPLY_FIXES:- } "
16
+ CLANG_TIDY_FIX_DIFF=" ${CLANG_TIDY_FIX_DIFF:- } "
15
17
16
18
DIFF_TARGET_BRANCH=" ${DIFF_TARGET_BRANCH:- origin/ main} "
17
19
@@ -91,7 +93,7 @@ function run_clang_tidy() {
91
93
python3 " ${LLVM_PREFIX} /share/clang/run-clang-tidy.py" \
92
94
-clang-tidy-binary=" ${CLANG_TIDY} " \
93
95
-clang-apply-replacements-binary=" ${CLANG_APPLY_REPLACEMENTS} " \
94
- -export-fixes=${FIX_YAML} -j " ${NUM_CPUS:- 0} " -p " ${SRCDIR} " -quiet \
96
+ -export-fixes=" ${FIX_YAML} " -j " ${NUM_CPUS:- 0} " -p " ${SRCDIR} " -quiet \
95
97
${APPLY_CLANG_TIDY_FIXES: +-fix} " $@ "
96
98
}
97
99
@@ -137,7 +139,40 @@ else
137
139
fi
138
140
139
141
if [[ -s " ${FIX_YAML} " ]]; then
140
- echo " clang-tidy check failed, potentially fixed by clang-apply-replacements:"
141
- cat " ${FIX_YAML} "
142
+ echo >&2
143
+ echo " clang-tidy check failed, potentially fixed by clang-apply-replacements:" >&2
144
+ echo >&2
145
+
146
+ # Replace the CI path with `.` so it should work locally for devs
147
+ sed -i s#BuildDirectory:.* # BuildDirectory:\ .# "${FIX_YAML}"
148
+ cat " ${FIX_YAML} " >&2
149
+
150
+ if [[ -n " ${CLANG_TIDY_APPLY_FIXES} " ]]; then
151
+ if [[ ! -e " $CLANG_APPLY_REPLACEMENTS " ]]; then
152
+ echo " clang-apply-replacements MISSING: ${CLANG_APPLY_REPLACEMENTS} " >&2
153
+ else
154
+ # Copy the yaml file into repo directory if its in a different location.
155
+ if [[ " $( dirname " ${FIX_YAML} " ) " != " $PWD " ]]; then
156
+ FIX_YAML_NAME=" $( basename " ${FIX_YAML} " ) "
157
+ if [[ -e " $FIX_YAML_NAME " ]]; then
158
+ # remove existing file
159
+ rm " $FIX_YAML_NAME "
160
+ fi
161
+ cp " ${FIX_YAML} " .
162
+ fi
163
+
164
+ ${CLANG_APPLY_REPLACEMENTS} .
165
+
166
+ echo >&2
167
+ echo " Changes applied:" >&2
168
+ echo >&2
169
+
170
+ git --no-pager diff >&2
171
+
172
+ if [[ -n " ${CLANG_TIDY_FIX_DIFF} " ]]; then
173
+ git diff > " ${CLANG_TIDY_FIX_DIFF} "
174
+ fi
175
+ fi
176
+ fi
142
177
exit 1
143
178
fi
0 commit comments