65 lines
1.4 KiB
Plaintext
Raw Normal View History

#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
usage() {
cat <<'EOF'
Usage: scripts/clean [options]
Removes local build artifacts that commonly cause disk pressure and flaky Docker builds.
Options:
--tmp Remove .tmp (default)
--target Remove target (default)
--docker Prune Docker builder cache (docker builder prune -f)
--all Equivalent to --tmp --target --docker
-h, --help Show this help
EOF
}
DO_TMP=0
DO_TARGET=0
DO_DOCKER=0
if [ "$#" -eq 0 ]; then
DO_TMP=1
DO_TARGET=1
fi
while [ "$#" -gt 0 ]; do
case "$1" in
--tmp) DO_TMP=1; shift ;;
--target) DO_TARGET=1; shift ;;
--docker) DO_DOCKER=1; shift ;;
--all) DO_TMP=1; DO_TARGET=1; DO_DOCKER=1; shift ;;
-h|--help) usage; exit 0 ;;
*) echo "Unknown argument: $1" >&2; usage; exit 2 ;;
esac
done
echo "Workspace: ${ROOT_DIR}"
if [ "${DO_TMP}" -eq 1 ]; then
echo "==> Removing ${ROOT_DIR}/.tmp"
rm -rf "${ROOT_DIR}/.tmp"
fi
if [ "${DO_TARGET}" -eq 1 ]; then
echo "==> Removing ${ROOT_DIR}/target"
rm -rf "${ROOT_DIR}/target"
fi
if [ "${DO_DOCKER}" -eq 1 ]; then
if command -v docker >/dev/null 2>&1; then
echo "==> Pruning Docker builder cache"
docker builder prune -f >/dev/null
echo "==> Docker builder cache pruned"
else
echo "WARN: docker not found; skipping Docker prune" >&2
fi
fi
echo "Done."