mirror of
https://github.com/PR0M3TH3AN/SeedPass.git
synced 2025-09-05 05:48:42 +00:00
71 lines
2.1 KiB
Bash
71 lines
2.1 KiB
Bash
#!/bin/bash
|
||
#
|
||
# SeedPass Uninstaller for Linux and macOS
|
||
#
|
||
# Removes the SeedPass application files but preserves user data under ~/.seedpass
|
||
|
||
set -e
|
||
|
||
APP_ROOT_DIR="$HOME/.seedpass"
|
||
INSTALL_DIR="$APP_ROOT_DIR/app"
|
||
LAUNCHER_PATH="$HOME/.local/bin/seedpass"
|
||
|
||
print_info() { echo -e "\033[1;34m[INFO]\033[0m $1"; }
|
||
print_success() { echo -e "\033[1;32m[SUCCESS]\033[0m $1"; }
|
||
print_warning() { echo -e "\033[1;33m[WARNING]\033[0m $1"; }
|
||
print_error() { echo -e "\033[1;31m[ERROR]\033[0m $1"; }
|
||
|
||
# Remove any stale 'seedpass' executables that may still be on the PATH.
|
||
remove_stale_executables() {
|
||
IFS=':' read -ra DIRS <<< "$PATH"
|
||
for dir in "${DIRS[@]}"; do
|
||
candidate="$dir/seedpass"
|
||
if [ -f "$candidate" ] && [ "$candidate" != "$LAUNCHER_PATH" ]; then
|
||
print_info "Removing old executable '$candidate'..."
|
||
if rm -f "$candidate"; then
|
||
rm_status=0
|
||
else
|
||
rm_status=$?
|
||
fi
|
||
if [ $rm_status -ne 0 ] && [ -f "$candidate" ]; then
|
||
print_warning "Failed to remove $candidate – try deleting it manually"
|
||
fi
|
||
fi
|
||
done
|
||
}
|
||
|
||
main() {
|
||
if [ -d "$INSTALL_DIR" ]; then
|
||
print_info "Removing installation directory '$INSTALL_DIR'..."
|
||
rm -rf "$INSTALL_DIR"
|
||
else
|
||
print_info "Installation directory not found."
|
||
fi
|
||
|
||
|
||
if [ -f "$LAUNCHER_PATH" ]; then
|
||
print_info "Removing launcher script '$LAUNCHER_PATH'..."
|
||
rm -f "$LAUNCHER_PATH"
|
||
else
|
||
print_info "Launcher script not found."
|
||
fi
|
||
|
||
remove_stale_executables
|
||
|
||
print_info "Attempting to uninstall any global 'seedpass' package with pip..."
|
||
if command -v python3 &> /dev/null; then
|
||
python3 -m pip uninstall -y seedpass >/dev/null 2>&1 || true
|
||
elif command -v pip &> /dev/null; then
|
||
pip uninstall -y seedpass >/dev/null 2>&1 || true
|
||
fi
|
||
if command -v pipx &> /dev/null; then
|
||
pipx uninstall -y seedpass >/dev/null 2>&1 || true
|
||
fi
|
||
|
||
print_success "SeedPass uninstalled."
|
||
print_warning "User data in '$APP_ROOT_DIR' was left intact."
|
||
}
|
||
|
||
main "$@"
|
||
|