summaryrefslogtreecommitdiff
path: root/misc/scripts
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2019-06-17 12:42:05 +0200
committerRémi Verschelde <rverschelde@gmail.com>2019-06-17 13:35:47 +0200
commit24ee8c3566c7ef5469df762c1daa21b330e2dd82 (patch)
tree646a7952fbfc134a3fdce10cdbf33cfb7395c307 /misc/scripts
parent0d61fc2c0f1d7625c866c79b6c4044fbab61a768 (diff)
Add script to fix style issues and copyright headers
This is only meant to check the validity of the whole codebase every now and then, or to apply clang-format config changes when relevant.
Diffstat (limited to 'misc/scripts')
-rwxr-xr-xmisc/scripts/fix_style.sh60
1 files changed, 60 insertions, 0 deletions
diff --git a/misc/scripts/fix_style.sh b/misc/scripts/fix_style.sh
new file mode 100755
index 0000000000..7a335c21ea
--- /dev/null
+++ b/misc/scripts/fix_style.sh
@@ -0,0 +1,60 @@
+#!/bin/bash
+
+# Command line arguments
+run_clang_format=false
+run_fix_headers=false
+usage="Invalid argument. Usage:\n$0 <option>\n\t--clang-format|-c\n\t--headers|-h\n\t--all|-a"
+
+if [ -z "$1" ]; then
+ echo -e $usage
+ exit 0
+fi
+
+while [ $# -gt 0 ]; do
+ case "$1" in
+ --clang-format|-c)
+ run_clang_format=true
+ ;;
+ --headers|-h)
+ run_fix_headers=true
+ ;;
+ --all|-a)
+ run_clang_format=true
+ run_fix_headers=true
+ ;;
+ *)
+ echo -e $usage
+ exit 0
+ esac
+ shift
+done
+
+echo "Removing generated files, some have binary data and make clang-format freeze."
+find -name "*.gen.*" -delete
+
+# Apply clang-format
+if $run_clang_format; then
+ # Sync list with pre-commit hook
+ FILE_EXTS=".c .h .cpp .hpp .cc .hh .cxx .m .mm .inc .java .glsl"
+
+ for extension in ${FILE_EXTS}; do
+ echo -e "Formatting ${extension} files..."
+ find \( -path "./.git" \
+ -o -path "./thirdparty" \
+ -o -path "./platform/android/java/src/com" \
+ \) -prune \
+ -o -name "*${extension}" \
+ -exec clang-format -i {} \;
+ done
+fi
+
+# Add missing copyright headers
+if $run_fix_headers; then
+ echo "Fixing copyright headers in Godot code files..."
+ find \( -path "./.git" -o -path "./thirdparty" \) -prune \
+ -o -regex '.*\.\(c\|h\|cpp\|hpp\|cc\|hh\|cxx\|m\|mm\|java\)' \
+ > tmp-files
+ cat tmp-files | grep -v ".git\|thirdparty\|theme_data.h\|platform/android/java/src/com\|platform/android/java/src/org/godotengine/godot/input/InputManager" > files
+ python misc/scripts/fix_headers.py
+ rm -f tmp-files files
+fi