summaryrefslogtreecommitdiffstats
path: root/bin/format_source_patch
blob: 2e01455dc4e18d2b57dca766520a064914f85e68 (plain)
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
#!/bin/bash
#
# Recursively format all C & C++ sources and header files, except those in the
# 'config' directory and generated files, such as H5LTanalyze.c, etc.
#
# Note that any files or directories that are excluded here should also be
# added to the 'exclude' list in .github/workflows/clang-format-check.yml
#
# (Remember to update both bin/format_source and bin/format_source_patch)

find . \( -type d -path ./config -prune -and -not -path ./config \) \
    -or \( \( \! \( \
        -name H5LTanalyze.c \
        -or -name H5LTparse.c \
        -or -name H5LTparse.h \
        -or -name H5Epubgen.h \
        -or -name H5Einit.h \
        -or -name H5Eterm.h \
        -or -name H5Edefin.h \
        -or -name H5version.h \
        -or -name H5overflow.h \
        \) \) \
    -and \( -iname *.h -or -iname *.c -or -iname *.cpp -or -iname *.hpp -or -iname *.java \) \) \
    | xargs clang-format -style=file -i -fallback-style=none

git diff > clang_format.patch

# Delete if 0 size
if [ ! -s clang_format.patch ]
then
    rm clang_format.patch
fi

exit 0