unreal-automations/format_code.sh

52 lines
1.1 KiB
Bash
Raw Normal View History

2025-03-05 07:52:49 +00:00
#!/bin/bash
# Configuration
CONFIG_FILE="$(dirname "$0")/.clang-format"
TARGET_DIRS=("Source" "Private" "Public" "Classes")
FILE_EXTS=("*.h" "*.cpp" "*.hpp" "*.c")
DRY_RUN=false
VERBOSE=false
# Parse arguments
while [[ $# -gt 0 ]]; do
case $1 in
--dry-run) DRY_RUN=true; shift ;;
--verbose) VERBOSE=true; shift ;;
--config) CONFIG_FILE="$2"; shift 2 ;;
*) echo "Unknown option: $1"; exit 1 ;;
esac
done
# Find all source files
FILES=()
for dir in "../${TARGET_DIRS[@]}"; do
for ext in "${FILE_EXTS[@]}"; do
while IFS= read -r -d $'\0' file; do
FILES+=("$file")
done < <(find "$(pwd)/$dir" -name "$ext" -print0)
done
done
# Formatting command
FORMAT_CMD="./clang-format -style=file:$CONFIG_FILE -i"
$DRY_RUN && FORMAT_CMD+=" --dry-run --Werror"
# Execute formatting
ERRORS=0
for file in "${FILES[@]}"; do
if $VERBOSE; then
echo "Checking $file"
fi
if ! $FORMAT_CMD "$file"; then
((ERRORS++))
fi
done
if [ $ERRORS -gt 0 ]; then
echo "$ERRORS files need formatting!"
exit 1
else
echo "✅ All files formatted correctly!"
exit 0
fi