godot/misc/scripts/fix_style.sh
Rémi Verschelde 24ee8c3566 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.
2019-06-17 13:35:47 +02:00

60 lines
1.6 KiB
Bash
Executable file

#!/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