#!/usr/bin/env sh # # uninstall.sh - End-user uninstaller for the `move` CLI. # # Curl-pipe ready: # # curl -fsSL https://gitea.cahlen.com/nokeo08/Move/raw/branch/master/uninstall.sh | sh # # Removes the `move` wrapper from $XDG_BIN_HOME and the install tree from # $XDG_DATA_HOME/move. Does NOT remove Bun — that's your runtime, not ours. # Also leaves the user config file at $XDG_CONFIG_HOME/move/config.json # intact (Unix convention; user customizations are not ours to delete). # A notice is printed pointing at the file so you can remove it yourself # if desired. # # Env vars (must match what install.sh used): # XDG_DATA_HOME Source install root (default $HOME/.local/share). # XDG_BIN_HOME Wrapper install root (default $HOME/.local/bin). # XDG_CONFIG_HOME User config root (default $HOME/.config). # # POSIX sh; no bashisms. set -eu INSTALL_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/move" BIN_DIR="${XDG_BIN_HOME:-$HOME/.local/bin}" CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/move" CONFIG_FILE="$CONFIG_DIR/config.json" WRAPPER="$BIN_DIR/move" die() { printf 'Error: %s\n' "$1" >&2 exit 1 } # Same safety guard as install.sh: refuse to wipe a directory that points # somewhere catastrophic. case "$INSTALL_DIR" in '' | '/' | "$HOME" | "$HOME/" | '/move') die "refusing to operate on INSTALL_DIR='$INSTALL_DIR' (too broad)" ;; esac REMOVED_SOMETHING=0 if [ -e "$WRAPPER" ] || [ -L "$WRAPPER" ]; then rm -f "$WRAPPER" printf 'Removed %s\n' "$WRAPPER" REMOVED_SOMETHING=1 fi if [ -d "$INSTALL_DIR" ]; then rm -rf "$INSTALL_DIR" printf 'Removed %s\n' "$INSTALL_DIR" REMOVED_SOMETHING=1 fi if [ "$REMOVED_SOMETHING" = "0" ]; then printf 'Nothing to remove. Checked %s and %s.\n' "$WRAPPER" "$INSTALL_DIR" if [ -e "$CONFIG_FILE" ]; then printf 'Note: config file at %s was left in place.\n' "$CONFIG_FILE" printf ' Remove it manually with: rm -rf %s\n' "$CONFIG_DIR" fi exit 0 fi if [ -e "$CONFIG_FILE" ]; then printf '\nNote: your config file at %s was left in place.\n' "$CONFIG_FILE" printf ' Remove it manually with: rm -rf %s\n' "$CONFIG_DIR" fi printf '\nUninstalled. (Bun was not touched.)\n'