diff options
author | David Snopek <dsnopek@gmail.com> | 2024-06-25 09:42:55 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-25 09:42:55 -0500 |
commit | 7d7799b56ed7dfdae1454f246a98cf35601cc053 (patch) | |
tree | 5f6385831fb7de70386c761907d9f4eb023155f6 /misc/scripts/header_guards.sh | |
parent | 90c6ea2a126a4238d87b3f9472ca16cf84e76102 (diff) | |
parent | e0d363aad8e2204fe8ca4b6937ef2ad74a7b293b (diff) | |
download | redot-cpp-7d7799b56ed7dfdae1454f246a98cf35601cc053.tar.gz |
Merge pull request #1504 from Repiteo/pre-commit-hooks
Replace legacy hooks with `pre-commit` Python tool
Diffstat (limited to 'misc/scripts/header_guards.sh')
-rwxr-xr-x | misc/scripts/header_guards.sh | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/misc/scripts/header_guards.sh b/misc/scripts/header_guards.sh deleted file mode 100755 index 7cea339..0000000 --- a/misc/scripts/header_guards.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/bash - -if [ ! -f "SConstruct" ]; then - echo "Warning: This script is intended to be run from the root of the Godot repository." - echo "Some of the paths checks may not work as intended from a different folder." -fi - -files_invalid_guard="" - -for file in $(find . -name "*.hpp" -print); do - # Skip generated files. - if [[ "$file" == "./gen/"* || "$file" == "./include/gen/"* ]]; then continue; fi - # Skip the test project. - if [[ "$file" == "./test/"* ]]; then continue; fi - - bname=$(basename $file .hpp) - - # NOTE: The "GODOT_CPP_" prefix is already used by the generated - # bindings, so we can't use that. We'll use "GODOT_" instead. - prefix="GODOT_" - - # ^^ is bash builtin for UPPERCASE. - guard="${prefix}${bname^^}_HPP" - - # Replaces guards to use computed name. - # We also add some \n to make sure there's a proper separation. - sed -i $file -e "0,/ifndef/s/#ifndef.*/\n#ifndef $guard/" - sed -i $file -e "0,/define/s/#define.*/#define $guard\n/" - sed -i $file -e "$ s/#endif.*/\n#endif \/\/ $guard/" - # Removes redundant \n added before, if they weren't needed. - sed -i $file -e "/^$/N;/^\n$/D" - - # Check that first ifndef (should be header guard) is at the expected position. - # If not it can mean we have some code before the guard that should be after. - # "31" is the expected line with the copyright header. - first_ifndef=$(grep -n -m 1 "ifndef" $file | sed 's/\([0-9]*\).*/\1/') - if [[ "$first_ifndef" != "31" ]]; then - files_invalid_guard+="$file\n" - fi -done - -if [[ ! -z "$files_invalid_guard" ]]; then - echo -e "The following files were found to have potentially invalid header guard:\n" - echo -e "$files_invalid_guard" -fi - -diff=$(git diff --color) - -# If no diff has been generated all is OK, clean up, and exit. -if [ -z "$diff" ] ; then - printf "Files in this commit comply with the header guards formatting rules.\n" - exit 0 -fi - -# A diff has been created, notify the user, clean up, and exit. -printf "\n*** The following differences were found between the code " -printf "and the header guards formatting rules:\n\n" -echo "$diff" -printf "\n*** Aborting, please fix your commit(s) with 'git commit --amend' or 'git rebase -i <hash>'\n" -exit 1 |