Fix github CI clang-format related check_c-cpp job (#1752)

* Fix github CI clang-format related check_c-cpp job

* shellcheck fix
This commit is contained in:
Ivan Zorin
2023-07-21 07:47:16 +03:00
committed by GitHub
parent 1c9d3940ca
commit 52dd27cc07
2 changed files with 7 additions and 4 deletions

View File

@@ -143,7 +143,7 @@ jobs:
steps:
- name: Install dependencies (apk)
run: apk add --no-cache make git diffutils findutils clang-extra-tools
run: apk add --no-cache make git diffutils findutils clang-extra-tools bash
- uses: actions/checkout@v3
with:

View File

@@ -95,9 +95,12 @@ check_style_file()
# * https://clang.llvm.org/docs/ClangFormatStyleOptions.html#insertbraces
# - since reference env is alpine 3.16 with clang-format 13, implement custom parser to do the similar thing here with grep:
# it used to trace missing { and } for if/else/do/while/for BUT IT'S VERY SPECULATIVE, very-very hacky & dirty.
test -z "${LIST}" || silent_opt="-q"
# if file is problematic but filename only requested make final grep in pipe silent ...
grep -H -n -e "^ .*if .*)$" -e "^ .*else$" -e "^ .* do$" -e "^ .*while .*)$" -e "^ .*for .*)$" "${src}" | grep -v -e "^.*//" -e "^.*:.*: .*if ((.*[^)])$" | sed 's,^,\n\n,; s,: ,:1: error: probably missing { or } for conditional or loop block:\n>>>,;' | grep "${silent_opt}" -e "^.*$"
# - if file is problematic but filename only requested make final grep in pipe silent ... UPD: make code messy but shellcheck happy
if [ -z "${LIST}" ]; then
grep -H -n -e "^ .*if .*)$" -e "^ .*else$" -e "^ .* do$" -e "^ .*while .*)$" -e "^ .*for .*)$" "${src}" | grep -v -e "^.*//" -e "^.*:.*: .*if ((.*[^)])$" | sed 's,^,\n\n,; s,: ,:1: error: probably missing { or } for conditional or loop block:\n>>>,;' | grep -e "^.*$"
else
grep -H -n -e "^ .*if .*)$" -e "^ .*else$" -e "^ .* do$" -e "^ .*while .*)$" -e "^ .*for .*)$" "${src}" | grep -v -e "^.*//" -e "^.*:.*: .*if ((.*[^)])$" | sed 's,^,\n\n,; s,: ,:1: error: probably missing { or } for conditional or loop block:\n>>>,;' | grep -q -e "^.*$"
fi;
if [ "${?}" -ne 1 ]; then
# ... and only print the filename
test -z "${LIST}" || echo "${src}"