Files
calypso/installer/alpha/uninstall.sh
2026-01-04 15:39:19 +07:00

123 lines
2.7 KiB
Bash
Executable File

#!/bin/bash
#
# AtlasOS - Calypso Appliance Uninstaller
#
# Usage: sudo ./installer/alpha/uninstall.sh [options]
#
# Options:
# --keep-data Keep data directories and database
# --keep-config Keep configuration files
#
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
log_info() {
echo -e "${GREEN}[INFO]${NC} $1"
}
log_warn() {
echo -e "${YELLOW}[WARN]${NC} $1"
}
log_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
# Check root
if [[ $EUID -ne 0 ]]; then
log_error "This script must be run as root (use sudo)"
exit 1
fi
KEEP_DATA=false
KEEP_CONFIG=false
while [[ $# -gt 0 ]]; do
case $1 in
--keep-data)
KEEP_DATA=true
shift
;;
--keep-config)
KEEP_CONFIG=true
shift
;;
*)
log_error "Unknown option: $1"
exit 1
;;
esac
done
log_info "=========================================="
log_info "Calypso Appliance Uninstaller"
log_info "=========================================="
log_info ""
# Confirm
read -p "Are you sure you want to uninstall Calypso? (yes/no): " confirm
if [[ "$confirm" != "yes" ]]; then
log_info "Uninstallation cancelled"
exit 0
fi
# Stop services
log_info "Stopping services..."
systemctl stop calypso-api 2>/dev/null || true
systemctl disable calypso-api 2>/dev/null || true
# Remove systemd services
log_info "Removing systemd services..."
rm -f /etc/systemd/system/calypso-api.service
rm -rf /etc/systemd/system/calypso-api.service.d/
systemctl daemon-reload
# Remove binaries
log_info "Removing binaries..."
rm -rf /opt/adastra/calypso
# Remove configuration
if [[ "$KEEP_CONFIG" == "false" ]]; then
log_info "Removing configuration..."
rm -rf /etc/calypso
else
log_info "Keeping configuration files (--keep-config)"
fi
# Remove data
if [[ "$KEEP_DATA" == "false" ]]; then
log_info "Removing data directories..."
rm -rf /srv/calypso
rm -rf /var/lib/calypso
rm -rf /var/log/calypso
rm -rf /run/calypso
else
log_info "Keeping data directories (--keep-data)"
fi
# Remove user (optional)
read -p "Remove calypso user? (y/N): " remove_user
if [[ "$remove_user" =~ ^[Yy]$ ]]; then
userdel calypso 2>/dev/null || true
log_info "User removed"
fi
log_info ""
log_info "=========================================="
log_info "Uninstallation Complete"
log_info "=========================================="
log_info ""
if [[ "$KEEP_DATA" == "true" ]] || [[ "$KEEP_CONFIG" == "true" ]]; then
log_warn "Some files were kept. Manual cleanup may be required."
fi