File: apply_clang_tidy.sh

package info (click to toggle)
sfcgal 2.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 15,084 kB
  • sloc: cpp: 37,122; sh: 141; makefile: 33; python: 22
file content (41 lines) | stat: -rwxr-xr-x 1,596 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/usr/bin/env bash

# This script generates a commit for each clang-tidy check using various clang utilities.
#
# By default, it uses Linux paths.
# You can execute it by defining the variables CLANG_TIDY_BIN, RUN_CLANG_TIDY_BIN, 
# and APPLY_CLANG_TIDY_BIN when running the script:
#
# > env CLANG_TIDY_BIN=/usr/local/bin/clang-tidy18 \
#       RUN_CLANG_TIDY_BIN=/usr/local/bin/run-clang-tidy18 \
#       APPLY_CLANG_TIDY_BIN=/usr/local/bin/clang-apply-replacements18 \
#       ./apply_clang_tidy.sh
#
# There isn't a clang-tidy CI in this project as of now.
# This script is useful for potential changes in .clang-tidy.
# We encourage developers to apply the fixes suggested by clang-tidy.


CLANG_TIDY_BIN=${CLANG_TIDY_BIN:-/usr/bin/clang-tidy}
RUN_CLANG_TIDY_BIN=${RUN_CLANG_TIDY_BIN:-/usr/bin/run-clang-tidy}
APPLY_CLANG_TIDY_BIN=${APPLY_CLANG_TIDY_BIN:-/usr/bin/clang-apply-replacements}

run_clang_tidy() {
    checks=$(${CLANG_TIDY_BIN} --list-checks | awk '/  /{print $1}')

    # Iterate over each check and run clang-tidy with fixes
    while IFS= read -r check; do
        ${RUN_CLANG_TIDY_BIN} -p build -clang-tidy-binary=${CLANG_TIDY_BIN} -clang-apply-replacements-binary=${APPLY_CLANG_TIDY_BIN} -header-filter=.* -checks="-*,$check" -fix

        # Check if changes were made
        if [ -n "$(git status -s)" ]; then
            # Commit the changes with a relevant message
            git add .
            git commit -m "Fix clang-tidy check: $check"
        else
            echo "No changes for clang-tidy check: $check"
        fi
    done <<< "$checks"
}

run_clang_tidy