Files
Bigfoot/format.sh
Romain BOULLARD 0d3885a863
Some checks failed
Bigfoot / Build & Test Debug with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 7m19s
Bigfoot / Build & Test Debug with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 5m14s
Bigfoot / Build & Test Debug with ./ConanProfiles/clang_asan (Unity Build: OFF) (push) Successful in 5m48s
Bigfoot / Build & Test Debug with ./ConanProfiles/clang_asan (Unity Build: ON) (push) Successful in 5m44s
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 5m59s
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 5m50s
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/clang_asan (Unity Build: OFF) (push) Successful in 6m55s
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/clang_asan (Unity Build: ON) (push) Successful in 6m59s
Bigfoot / Build & Test Release with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 5m55s
Bigfoot / Build & Test Release with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 5m56s
Bigfoot / Build & Test Release with ./ConanProfiles/clang_asan (Unity Build: OFF) (push) Successful in 6m45s
Bigfoot / Build & Test Release with ./ConanProfiles/clang_asan (Unity Build: ON) (push) Successful in 6m54s
Bigfoot / Clang Format Checks (push) Failing after 10s
Remove full reflection, we'll use minireflect
2026-05-11 21:53:13 +02:00

69 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
FMT="clang-format"
MODE=""
DIRS=()
EXIT_CODE=0
# =========================
# Parse arguments
# =========================
for arg in "$@"; do
case "$arg" in
--check)
MODE="check"
;;
--fix)
MODE="fix"
;;
*)
DIRS+=("$arg")
;;
esac
done
# Ensure mode is set
if [[ -z "$MODE" ]]; then
echo "Usage: $0 --check|--fix <directory> [<directory> ...]"
exit 1
fi
# Ensure at least one directory
if [[ ${#DIRS[@]} -eq 0 ]]; then
echo "Please provide at least one directory."
exit 1
fi
# =========================
# Process directories
# =========================
for DIR in "${DIRS[@]}"; do
if [[ ! -d "$DIR" ]]; then
echo "$DIR is not a valid directory."
EXIT_CODE=1
continue
fi
# Find all source files safely (null-separated)
while IFS= read -r -d '' FILE; do
[[ "$FILE" == *_generated* ]] && continue
if [[ "$MODE" == "fix" ]]; then
echo "Formatting $FILE"
"$FMT" -i "$FILE"
else
echo "Checking $FILE"
# Check mode: clang-format diagnostic only
if ! "$FMT" --dry-run --Werror "$FILE"; then
# clang-format prints: file:line:col: error ...
EXIT_CODE=1
fi
fi
done < <(
find "$DIR" \( -name '*.h' -o -name '*.hpp' -o -name '*.c' -o -name '*.cpp' -o -name '*.m' -o -name '*.mm' \) -print0
)
done
exit $EXIT_CODE