123 lines
2.7 KiB
Bash
Executable File
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
|
|
|