mirror of
git://f0xx.org/android_cast
synced 2026-07-29 04:18:09 +03:00
snap
This commit is contained in:
67
orchestration/cleanup.sh
Executable file
67
orchestration/cleanup.sh
Executable file
@@ -0,0 +1,67 @@
|
||||
#!/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."
|
||||
Reference in New Issue
Block a user