#!/bin/bash

set -e

if type update-alternatives >/dev/null 2>&1; then
    # Remove previous link if it doesn't use update-alternatives
    if [ -L '/usr/bin/clash-party' ] && [ -e '/usr/bin/clash-party' ] && [ "$(readlink '/usr/bin/clash-party')" != '/etc/alternatives/clash-party' ]; then
        rm -f '/usr/bin/clash-party'
    fi
    update-alternatives --install '/usr/bin/clash-party' 'clash-party' '/opt/clash-party/mihomo-party' 100 || ln -sf '/opt/clash-party/mihomo-party' '/usr/bin/clash-party'
else
    ln -sf '/opt/clash-party/mihomo-party' '/usr/bin/clash-party'
fi

chmod 4755 '/opt/clash-party/chrome-sandbox' 2>/dev/null || true

chmod +sx /opt/clash-party/resources/sidecar/mihomo 2>/dev/null || true
chmod +sx /opt/clash-party/resources/sidecar/mihomo-alpha 2>/dev/null || true
chmod +sx /opt/clash-party/resources/sidecar/mihomo-smart 2>/dev/null || true

if hash update-mime-database 2>/dev/null; then
    update-mime-database /usr/share/mime || true
fi

if hash update-desktop-database 2>/dev/null; then
    update-desktop-database /usr/share/applications || true
fi

# Update icon cache for GNOME/GTK environments
if hash gtk-update-icon-cache 2>/dev/null; then
    for dir in /usr/share/icons/hicolor /usr/share/icons/gnome; do
        [ -d "$dir" ] && gtk-update-icon-cache -f -t "$dir" 2>/dev/null || true
    done
fi

# Refresh GNOME Shell icon cache
if hash update-icon-caches 2>/dev/null; then
    update-icon-caches /usr/share/icons/* 2>/dev/null || true
fi
