48 lines
1.2 KiB
Bash
48 lines
1.2 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# Non-destructive cleaner for stray build artifacts in repo root.
|
|
# Dry-run by default; pass --apply to actually remove.
|
|
|
|
ROOT_DIR=$(cd "$(dirname "$0")/.." && pwd)
|
|
APPLY=0
|
|
[[ "${1:-}" == "--apply" ]] && APPLY=1
|
|
|
|
cd "$ROOT_DIR"
|
|
|
|
patterns=(
|
|
"app_*" # e.g., app_parity_*, app_stage3_loop, etc.
|
|
"*_app" # e.g., test_filebox_app
|
|
"*.o" # stray .o files
|
|
)
|
|
|
|
echo "[clean-root] scanning..."
|
|
found=()
|
|
for pat in "${patterns[@]}"; do
|
|
while IFS= read -r -d $'\0' f; do
|
|
# skip directories and keep inside tools/, src/, apps/, etc.
|
|
[[ -d "$f" ]] && continue
|
|
case "$f" in
|
|
src/*|apps/*|examples/*|tools/*|docs/*|tests/*|crates/*|plugins/*) continue ;;
|
|
esac
|
|
found+=("$f")
|
|
done < <(find . -maxdepth 1 -name "$pat" -print0 2>/dev/null || true)
|
|
done
|
|
|
|
if (( ${#found[@]} == 0 )); then
|
|
echo "[clean-root] nothing to clean"
|
|
exit 0
|
|
fi
|
|
|
|
printf "[clean-root] candidates (%d):\n" "${#found[@]}"
|
|
printf ' %s\n' "${found[@]}"
|
|
|
|
if (( APPLY )); then
|
|
echo "[clean-root] removing..."
|
|
rm -f -- "${found[@]}"
|
|
echo "[clean-root] done"
|
|
else
|
|
echo "[clean-root] dry-run (no files removed). Use --apply to remove."
|
|
fi
|
|
|