1
0
mirror of git://f0xx.org/ac/ac-deploy synced 2026-07-29 00:58:20 +03:00
Files
ac-deploy/cleanup.sh
Anton Afanasyeu 7f3e4fea9f initial
2026-06-23 12:21:14 +02:00

68 lines
2.1 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
COMPOSE_FILE="$ROOT_DIR/docker-compose.yml"
ENV_FILE="$ROOT_DIR/.env"
ENV_EXAMPLE="$ROOT_DIR/.env.example"
RUNTIME_DIR="$ROOT_DIR/runtime"
if ! command -v docker >/dev/null 2>&1; then
echo "docker not found in PATH"
exit 1
fi
if ! docker compose version >/dev/null 2>&1; then
echo "docker compose plugin is required"
exit 1
fi
if [[ ! -f "$ENV_FILE" && -f "$ENV_EXAMPLE" ]]; then
cp "$ENV_EXAMPLE" "$ENV_FILE"
fi
set -a
if [[ -f "$ENV_FILE" ]]; then
# shellcheck disable=SC1090
source "$ENV_FILE"
fi
set +a
PROJECT_NAME="${COMPOSE_PROJECT_NAME:-androidcast_local}"
echo "Stopping and removing orchestration stack..."
docker compose -f "$COMPOSE_FILE" down --remove-orphans --volumes --rmi local || true
echo "Removing leftover containers with compose project label..."
docker ps -aq --filter "label=com.docker.compose.project=${PROJECT_NAME}" | while read -r cid; do
[[ -n "$cid" ]] && docker rm -f "$cid" || true
done
echo "Removing leftover compose networks..."
docker network ls -q --filter "label=com.docker.compose.project=${PROJECT_NAME}" | while read -r nid; do
[[ -n "$nid" ]] && docker network rm "$nid" || true
done
echo "Removing leftover compose volumes..."
docker volume ls -q --filter "label=com.docker.compose.project=${PROJECT_NAME}" | while read -r vid; do
[[ -n "$vid" ]] && docker volume rm "$vid" || true
done
echo "Removing orchestration screen sessions if present..."
if command -v screen >/dev/null 2>&1; then
screen_output="$(screen -ls 2>/dev/null || true)"
printf '%s\n' "$screen_output" | awk '/androidcast|orchestration/ {print $1}' | while read -r session; do
[[ -n "$session" ]] && screen -S "$session" -X quit || true
done
fi
echo "Cleaning generated runtime artifacts..."
rm -f "$RUNTIME_DIR/crash-config.php"
rm -f "$RUNTIME_DIR/db-init/010_schema.sql" \
"$RUNTIME_DIR/db-init/040_ticket_workflow.sql" \
"$RUNTIME_DIR/db-init/050_ticket_attachments.sql"
mkdir -p "$RUNTIME_DIR/db-init"
touch "$RUNTIME_DIR/db-init/.gitkeep"
echo "Orchestration cleanup complete."