testsAndMisc/C/imageViewer/uninstall_arch.sh

134 lines
3.5 KiB
Bash
Raw Normal View History

#!/bin/bash
# ImageViewer Uninstallation Script for Arch Linux
set -e # Exit on any error
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Configuration
INSTALL_DIR="/usr/local/bin"
DESKTOP_FILE_DIR="/usr/local/share/applications"
ICON_DIR="/usr/local/share/pixmaps"
print_step() {
echo -e "${BLUE}==>${NC} ${1}"
}
print_success() {
echo -e "${GREEN}${NC} ${1}"
}
print_warning() {
echo -e "${YELLOW}${NC} ${1}"
}
print_error() {
echo -e "${RED}${NC} ${1}"
}
remove_files() {
print_step "Removing imageviewer files..."
# Remove binary
if [[ -f "${INSTALL_DIR}/imageviewer" ]]; then
sudo rm "${INSTALL_DIR}/imageviewer"
print_success "Removed ${INSTALL_DIR}/imageviewer"
else
print_warning "Binary not found at ${INSTALL_DIR}/imageviewer"
fi
# Remove desktop entry
if [[ -f "${DESKTOP_FILE_DIR}/imageviewer.desktop" ]]; then
sudo rm "${DESKTOP_FILE_DIR}/imageviewer.desktop"
print_success "Removed desktop entry"
else
print_warning "Desktop entry not found"
fi
# Remove icon
if [[ -f "${ICON_DIR}/imageviewer.svg" ]]; then
sudo rm "${ICON_DIR}/imageviewer.svg"
print_success "Removed application icon"
else
print_warning "Application icon not found"
fi
}
reset_default_associations() {
print_step "Resetting default image viewer associations..."
# List of MIME types for images
local mime_types=(
"image/jpeg"
"image/jpg"
"image/png"
"image/bmp"
"image/gif"
"image/tiff"
"image/tif"
"image/webp"
)
# Reset default application for each MIME type
for mime_type in "${mime_types[@]}"; do
if command -v xdg-mime &> /dev/null; then
# Check if imageviewer was the default
local current_default=$(xdg-mime query default "$mime_type" 2>/dev/null)
if [[ "$current_default" == "imageviewer.desktop" ]]; then
# Remove the association (this will fall back to system defaults)
local mimeapps_file="$HOME/.config/mimeapps.list"
if [[ -f "$mimeapps_file" ]]; then
sed -i "/^${mime_type}=imageviewer.desktop$/d" "$mimeapps_file" 2>/dev/null || true
fi
fi
fi
done
print_success "Default image viewer associations reset"
}
update_desktop_database() {
print_step "Updating desktop database..."
if command -v update-desktop-database &> /dev/null; then
sudo update-desktop-database "${DESKTOP_FILE_DIR}" 2>/dev/null || true
print_success "Desktop database updated"
else
print_warning "update-desktop-database not found, skipping..."
fi
}
main() {
echo -e "${BLUE}ImageViewer Uninstallation Script${NC}"
echo "================================="
echo
# Show what will be removed
echo -e "${YELLOW}This script will remove:${NC}"
echo " - ${INSTALL_DIR}/imageviewer"
echo " - ${DESKTOP_FILE_DIR}/imageviewer.desktop"
echo " - ${ICON_DIR}/imageviewer.svg"
echo
echo -e "${YELLOW}Note: Dependencies (SDL2 libraries) will NOT be removed.${NC}"
echo
remove_files
reset_default_associations
update_desktop_database
echo
echo -e "${GREEN}ImageViewer has been successfully uninstalled!${NC}"
echo
echo -e "${BLUE}To remove dependencies (if no longer needed):${NC}"
echo " sudo pacman -R sdl2 sdl2_image"
}
# Run main function
main "$@"