diff options
Diffstat (limited to 'Meta/lint-clang-format.sh')
-rwxr-xr-x | Meta/lint-clang-format.sh | 45 |
1 files changed, 29 insertions, 16 deletions
diff --git a/Meta/lint-clang-format.sh b/Meta/lint-clang-format.sh index 6a84940969..2359639071 100755 --- a/Meta/lint-clang-format.sh +++ b/Meta/lint-clang-format.sh @@ -20,7 +20,7 @@ else exit 1 fi -if [ "$#" -eq "1" ] && [ "x--overwrite-inplace" = "x$1" ] ; then +if [ "$#" -gt "0" ] && [ "x--overwrite-inplace" = "x$1" ] ; then true # The only way to run this script. else # Note that this branch also covers --help, -h, -help, -?, etc. @@ -31,19 +31,32 @@ fi echo "Using ${CLANG_FORMAT}" -{ - git ls-files -- \ - '*.cpp' \ - '*.h' \ - ':!:Base' \ - ':!:Kernel/Arch/i386/CPU.cpp' \ - ':!:Kernel/FileSystem/ext2_fs.h' \ - ':!:Libraries/LibC/getopt.cpp' \ - ':!:Libraries/LibC/syslog.h' \ - ':!:Libraries/LibCore/puff.h' \ - ':!:Libraries/LibCore/puff.cpp' \ - ':!:Libraries/LibELF/exec_elf.h' \ - || echo "'git ls-files failed!'" -} | xargs -d'\n' "${CLANG_FORMAT}" -style=file -i +if [ "$#" -eq "1" ]; then + mapfile -t files < <( + git ls-files -- \ + '*.cpp' \ + '*.h' \ + ':!:Base' \ + ':!:Kernel/Arch/i386/CPU.cpp' \ + ':!:Kernel/FileSystem/ext2_fs.h' \ + ':!:Libraries/LibC/getopt.cpp' \ + ':!:Libraries/LibC/syslog.h' \ + ':!:Libraries/LibCore/puff.h' \ + ':!:Libraries/LibCore/puff.cpp' \ + ':!:Libraries/LibELF/exec_elf.h' + ) +else + files=() + for file in "${@:2}"; do + if [[ "${file}" == *".cpp" || "${file}" == *".h" ]]; then + files+=("${file}") + fi + done +fi -echo "Maybe some files have changed. Sorry, but clang-format doesn't indicate what happened." +if (( ${#files[@]} )); then + "${CLANG_FORMAT}" -style=file -i "${files[@]}" + echo "Maybe some files have changed. Sorry, but clang-format doesn't indicate what happened." +else + echo "No .cpp or .h files to check." +fi |