#!/usr/bin/env bash set -euo pipefail source "$(dirname "$0")/lib/common.sh" init_script_dir check_dependencies PURGE=false usage() { cat <<'EOF' Использование: ./uninstall.sh [--purge] --purge Удалить контейнеры и Docker-тома с данными (необратимо) EOF } while [[ $# -gt 0 ]]; do case "$1" in --purge) PURGE=true; shift ;; -h|--help) usage; exit 0 ;; *) err "Неизвестный аргумент: $1"; usage; exit 1 ;; esac done if [[ "$PURGE" == true ]]; then warn "Будут удалены контейнеры и все данные (тома Docker)!" else warn "Контейнеры будут удалены. Тома с данными сохранятся." fi confirm_or_exit "Продолжить?" if systemctl is-enabled gitea.service >/dev/null 2>&1; then warn "Служба gitea.service включена. Сначала выполните: sudo ./remove-service.sh" exit 1 fi docker compose down if [[ "$PURGE" == true ]]; then read -r -a volumes <<< "$(get_volume_names)" for vol in "${volumes[@]}"; do if docker volume inspect "$vol" >/dev/null 2>&1; then log "Удаление тома: $vol" docker volume rm "$vol" fi done log "Полное удаление завершено." else log "Контейнеры удалены. Данные сохранены в томах: $(get_volume_names)" log "Для полного удаления данных: ./uninstall.sh --purge" fi