init
This commit is contained in:
102
uninstall.sh
Normal file
102
uninstall.sh
Normal file
@@ -0,0 +1,102 @@
|
||||
#!/usr/bin/env bash
|
||||
set -uo pipefail
|
||||
|
||||
SERVICE_NAME="gzw-eac-fix"
|
||||
INSTALL_DIR="$HOME/.local/share/gzw-eac-fix"
|
||||
|
||||
BLUE='\033[0;34m'
|
||||
RED='\033[0;31m'
|
||||
NC='\033[0m'
|
||||
PREFIX="[${SERVICE_NAME}]"
|
||||
|
||||
log_info() { printf "${BLUE}${PREFIX}${NC} %s\n" "$1"; }
|
||||
log_warn() { printf "${BLUE}${PREFIX}${NC} ⚠ %s\n" "$1"; }
|
||||
log_error(){ printf "${RED}${PREFIX} Error: %s${NC}\n" "$1" >&2; }
|
||||
die() { log_error "$1"; exit 1; }
|
||||
|
||||
echo ""
|
||||
printf "${BLUE}${PREFIX}${NC} This will remove:\n"
|
||||
printf " %s\n" "$INSTALL_DIR"
|
||||
printf " systemd units, autostart entries, or sv dirs created by setup.sh\n"
|
||||
echo ""
|
||||
read -r -p "Continue? [y/N] " confirm
|
||||
[[ "${confirm,,}" == "y" ]] || { log_info "Aborted."; exit 0; }
|
||||
echo ""
|
||||
|
||||
removed=0
|
||||
|
||||
SYSTEMD_USER_DIR="$HOME/.config/systemd/user"
|
||||
|
||||
if [[ -f "$SYSTEMD_USER_DIR/${SERVICE_NAME}.path" || \
|
||||
-f "$SYSTEMD_USER_DIR/${SERVICE_NAME}.service" ]]; then
|
||||
log_info "Removing systemd units..."
|
||||
|
||||
systemctl --user stop "${SERVICE_NAME}.path" 2>/dev/null \
|
||||
&& log_info " Stopped ${SERVICE_NAME}.path" || true
|
||||
systemctl --user stop "${SERVICE_NAME}.service" 2>/dev/null || true
|
||||
|
||||
systemctl --user disable "${SERVICE_NAME}.path" 2>/dev/null \
|
||||
&& log_info " Disabled ${SERVICE_NAME}.path" || true
|
||||
|
||||
for wants_dir in \
|
||||
"$SYSTEMD_USER_DIR/default.target.wants" \
|
||||
"$SYSTEMD_USER_DIR/multi-user.target.wants"; do
|
||||
local_link="$wants_dir/${SERVICE_NAME}.path"
|
||||
if [[ -L "$local_link" ]]; then
|
||||
rm -f "$local_link"
|
||||
log_info " Removed stale symlink: $local_link"
|
||||
fi
|
||||
done
|
||||
|
||||
for unit in "${SERVICE_NAME}.path" "${SERVICE_NAME}.service"; do
|
||||
if [[ -f "$SYSTEMD_USER_DIR/$unit" ]]; then
|
||||
rm -f "$SYSTEMD_USER_DIR/$unit"
|
||||
log_info " Removed $SYSTEMD_USER_DIR/$unit"
|
||||
(( removed++ )) || true
|
||||
fi
|
||||
done
|
||||
|
||||
systemctl --user daemon-reload
|
||||
log_info " Daemon reloaded."
|
||||
fi
|
||||
|
||||
|
||||
DESKTOP_FILE="$HOME/.config/autostart/${SERVICE_NAME}.desktop"
|
||||
if [[ -f "$DESKTOP_FILE" ]]; then
|
||||
log_info "Removing XDG autostart entry..."
|
||||
rm -f "$DESKTOP_FILE"
|
||||
log_info " Removed $DESKTOP_FILE"
|
||||
(( removed++ )) || true
|
||||
fi
|
||||
|
||||
RUNIT_SV_DIR="$HOME/sv/${SERVICE_NAME}"
|
||||
if [[ -d "$RUNIT_SV_DIR" ]]; then
|
||||
log_info "Removing runit service..."
|
||||
sv stop "$SERVICE_NAME" 2>/dev/null || true
|
||||
rm -rf "$RUNIT_SV_DIR"
|
||||
log_info " Removed $RUNIT_SV_DIR"
|
||||
(( removed++ )) || true
|
||||
fi
|
||||
|
||||
S6_SV_DIR="$HOME/.config/s6/sv/${SERVICE_NAME}"
|
||||
if [[ -d "$S6_SV_DIR" ]]; then
|
||||
log_info "Removing s6 service..."
|
||||
s6-svc -d "$S6_SV_DIR" 2>/dev/null || true
|
||||
rm -rf "$S6_SV_DIR"
|
||||
log_info " Removed $S6_SV_DIR"
|
||||
(( removed++ )) || true
|
||||
fi
|
||||
|
||||
if [[ -d "$INSTALL_DIR" ]]; then
|
||||
log_info "Removing install directory..."
|
||||
rm -rf "$INSTALL_DIR"
|
||||
log_info " Removed $INSTALL_DIR"
|
||||
(( removed++ )) || true
|
||||
fi
|
||||
|
||||
echo ""
|
||||
if (( removed > 0 )); then
|
||||
log_info "Uninstall complete."
|
||||
else
|
||||
log_warn "Nothing found to remove - was setup.sh ever run?"
|
||||
fi
|
||||
Reference in New Issue
Block a user