From 576c9e4fe87c5bb38c84b23dcad3529f68eb4a47 Mon Sep 17 00:00:00 2001 From: Thaddeus Crews Date: Mon, 17 Jun 2024 10:39:02 -0500 Subject: CI: Add pre-commit hook for `clang-tidy` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit • Set to "manual" so it isn't invoked in normal workflow • Modernize `.clang-tidy` file --- misc/scripts/clang_tidy.sh | 33 --------------------------------- 1 file changed, 33 deletions(-) delete mode 100755 misc/scripts/clang_tidy.sh (limited to 'misc/scripts/clang_tidy.sh') diff --git a/misc/scripts/clang_tidy.sh b/misc/scripts/clang_tidy.sh deleted file mode 100755 index 0c6998b491..0000000000 --- a/misc/scripts/clang_tidy.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env bash - -# This script runs clang-tidy on all relevant files in the repo. -# This is more thorough than clang-format and thus slower; it should only be run manually. - -set -uo pipefail - -# Loops through all code files tracked by Git. -git ls-files -- '*.c' '*.h' '*.cpp' '*.hpp' '*.cc' '*.hh' '*.cxx' '*.m' '*.mm' '*.inc' '*.java' '*.glsl' \ - ':!:.git/*' ':!:thirdparty/*' ':!:platform/android/java/lib/src/com/google/*' ':!:*-so_wrap.*' | -while read -r f; do - # Run clang-tidy. - clang-tidy --quiet --fix "$f" &> /dev/null - - # Run clang-format. This also fixes the output of clang-tidy. - clang-format --Wno-error=unknown -i "$f" -done - -diff=$(git diff --color) - -# If no diff has been generated all is OK, clean up, and exit. -if [ -z "$diff" ] ; then - printf "\e[1;32m*** Files in this commit comply with the clang-tidy style rules.\e[0m\n" - exit 0 -fi - -# A diff has been created, notify the user, clean up, and exit. -printf "\n\e[1;33m*** The following changes must be made to comply with the formatting rules:\e[0m\n\n" -# Perl commands replace trailing spaces with `·` and tabs with ``. -printf "%s\n" "$diff" | perl -pe 's/(.*[^ ])( +)(\e\[m)$/my $spaces="·" x length($2); sprintf("$1$spaces$3")/ge' | perl -pe 's/(.*[^\t])(\t+)(\e\[m)$/my $tabs="" x length($2); sprintf("$1$tabs$3")/ge' - -printf "\n\e[1;91m*** Please fix your commit(s) with 'git commit --amend' or 'git rebase -i '\e[0m\n" -exit 1 -- cgit v1.2.3