#!/bin/bash

# Copyright 2004, ..., 2026  Jean-Philippe Guillemin <h1p8r10n@yandex.com>
# All rights reserved.
#
#   Permission to use, copy, modify, and distribute this patch for
#   any purpose with or without fee is hereby granted, provided that
#   the above copyright notice and this permission notice appear in all
#   copies.
#
#   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
#   WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
#   MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
#   IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
#   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
#   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
#   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
#   USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
#   ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
#   OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
#   OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
#   SUCH DAMAGE.

usage(){
  echo "Usage : $0 FILE.AppImage"
}

CWD="$(pwd)"
APPIMAGE="$(basename $1 2>/dev/null)"

[[ ! -f $CWD/$APPIMAGE ]] && usage && exit

chmod 755 $CWD/$APPIMAGE

APPFILE="$(basename -s .AppImage "$APPIMAGE")"

rm -rf $CWD/squashfs-root
$CWD/$APPIMAGE --appimage-extract

DESKTOP=$(ls $CWD/squashfs-root/*.desktop)

ICON="$(basename $(ls $CWD/squashfs-root/*.png 2>/dev/null || ls $CWD/squashfs-root/*.svg 2>/dev/null))"
EXEC="$(sed -n 's/Exec=\([^ ]*\).*$/\1/p' "$DESKTOP" | head -n1)"

rm -f $HOME/.local/share/icons/hicolor/scalable/apps/$ICON
rm -f $HOME/.local/share/applications/$(basename $EXEC).desktop
rm -f $HOME/Desktop/$(basename $EXEC).desktop

rm -rf $CWD/squashfs-root
rm -rf $CWD/AppDir

xdg-desktop-menu forceupdate
