|
@@ -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
|