#!/usr/bin/env bash # SPDX-FileCopyrightText: 2026 Stan Grams # # SPDX-License-Identifier: GPL-2.0-or-later # # Reverse script/install.sh: stop and remove the systemd user services and the # installed binaries. User config (~/.config/trx-rs) is left in place unless # --purge is given. set -euo pipefail BINARIES=(trx-server trx-client trx-configurator) PREFIX="${PREFIX:-$HOME/.local}" BINDIR="${BINDIR:-}" PURGE=0 CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/trx-rs" UNIT_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/systemd/user" usage() { cat <&2; usage >&2; exit 2 ;; esac done [ -n "$BINDIR" ] || BINDIR="$PREFIX/bin" log() { printf '\033[1;32m==>\033[0m %s\n' "$*"; } need_sudo() { local dir="$1" while [ ! -e "$dir" ]; do dir="$(dirname "$dir")"; done [ -w "$dir" ] && return 1 || return 0 } # --- Stop and remove user services ----------------------------------------- if command -v systemctl >/dev/null 2>&1; then log "Stopping and disabling user services…" systemctl --user disable --now trx-client.service trx-server.service 2>/dev/null || true fi for unit in trx-client trx-server; do if [ -e "$UNIT_DIR/$unit.service" ]; then rm -f "$UNIT_DIR/$unit.service" log "removed $UNIT_DIR/$unit.service" fi done if command -v systemctl >/dev/null 2>&1; then systemctl --user daemon-reload || true fi # --- Remove binaries -------------------------------------------------------- SUDO="" if need_sudo "$BINDIR"; then SUDO="sudo"; fi for b in "${BINARIES[@]}"; do if [ -e "$BINDIR/$b" ]; then $SUDO rm -f "$BINDIR/$b" log "removed $BINDIR/$b" fi done # --- Optionally purge config ------------------------------------------------ if [ "$PURGE" -eq 1 ]; then rm -rf "$CONFIG_DIR" log "purged $CONFIG_DIR" else log "Left config in place: $CONFIG_DIR (use --purge to delete)" fi log "Done."