mirror of
https://github.com/logos-blockchain/logos-blockchain-testing.git
synced 2026-01-02 13:23:13 +00:00
91 lines
2.3 KiB
Bash
Executable File
91 lines
2.3 KiB
Bash
Executable File
#!/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)
|
|
--docker-system Prune Docker system objects (requires --dangerous)
|
|
--volumes With --docker-system, also prune volumes
|
|
--dangerous Required for --docker-system (destructive)
|
|
--all Equivalent to --tmp --target --docker
|
|
-h, --help Show this help
|
|
EOF
|
|
}
|
|
|
|
DO_TMP=0
|
|
DO_TARGET=0
|
|
DO_DOCKER=0
|
|
DO_DOCKER_SYSTEM=0
|
|
DO_VOLUMES=0
|
|
DANGEROUS=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 ;;
|
|
--docker-system) DO_DOCKER_SYSTEM=1; shift ;;
|
|
--volumes) DO_VOLUMES=1; shift ;;
|
|
--dangerous) DANGEROUS=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
|
|
|
|
if [ "${DO_DOCKER_SYSTEM}" -eq 1 ]; then
|
|
if [ "${DANGEROUS}" -ne 1 ]; then
|
|
echo "ERROR: --docker-system requires --dangerous" >&2
|
|
exit 2
|
|
fi
|
|
if command -v docker >/dev/null 2>&1; then
|
|
echo "==> Pruning Docker system objects"
|
|
if [ "${DO_VOLUMES}" -eq 1 ]; then
|
|
docker system prune -af --volumes >/dev/null
|
|
else
|
|
docker system prune -af >/dev/null
|
|
fi
|
|
echo "==> Docker system prune complete"
|
|
else
|
|
echo "WARN: docker not found; skipping Docker system prune" >&2
|
|
fi
|
|
fi
|
|
|
|
echo "Done."
|