bd730d78dcd99b0963c4c7c0a8576b1c2f7f06ac
[tinc] / .ci / tidy / run.sh
1 #!/bin/sh
2
3 set -eu
4
5 # Which paths to ignore.
6 paths='src/solaris src/mingw src/gcrypt'
7
8 case "$(uname -s)" in
9 Linux)
10   paths="$paths src/bsd"
11   ;;
12
13 FreeBSD)
14   paths="$paths src/linux src/bsd/tunemu.c"
15   ;;
16
17 Darwin)
18   paths="$paths src/linux src/vde_device.c"
19   ;;
20
21 *) exit 1 ;;
22 esac
23
24 path_filters=''
25 for path in $paths; do
26   path_filters=" $path_filters ! ( -path $path -prune ) "
27 done
28
29 if ! [ -f compile_commands.json ]; then
30   compiledb make all extra
31 fi
32
33 echo >&2 "Running clang-tidy without $paths"
34
35 # This is fine, our paths are relative and do not contain any whitespace.
36 # shellcheck disable=SC2086
37 find src \
38   $path_filters \
39   -name '*.c' \
40   -exec clang-tidy --header-filter='.*' '{}' +