mirror of
git://f0xx.org/ac/ac-deploy
synced 2026-07-29 00:58:20 +03:00
68 lines
2.1 KiB
Bash
Executable File
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."
|