#!/bin/sh

# AM INSTALL SCRIPT VERSION 3.5
set -u
APP=kdegames
SITE="ivan-hc/KDE-games-suite-appimage"; METAPKG="bomber bovo granatier kajongg kapman katomic kblackbox kblocks kbounce kbreakout kdiamond kfourinline kgoldrunner kigo killbots kiriki kjumpingcube klickety klines kmahjongg kmines knavalbattle knetwalk knights kolf kollision konquest kpat kreversi kshisen ksirk ksnakeduel kspaceduel ksquares ksudoku ktuberling kubrick lskat palapeli picmi"

# CREATE DIRECTORIES AND ADD REMOVER
[ -n "$APP" ] && mkdir -p "/opt/$APP/tmp" "/opt/$APP/icons" && cd "/opt/$APP/tmp" || exit 1
printf "#!/bin/sh\nset -e\nrm -f /usr/local/bin/$APP\nrm -R -f /opt/$APP" > ../remove
printf '\n%s' "rm -f /usr/local/share/applications/$APP-*-AM.desktop" >> ../remove
chmod a+x ../remove || exit 1

# DOWNLOAD AND PREPARE THE APP, $version is also used for updates
version=$(curl -Ls https://api.github.com/repos/ivan-hc/KDE-games-suite-appimage/releases | sed 's/[()",{} ]/\n/g' | grep -oi "https.*mage$" | grep -vi "i386\|i686\|aarch64\|arm64\|armv7l" | head -1)
wget "$version" || exit 1
# Keep this space in sync with other installation scripts
# Use tar fx ./*tar* here for example in this line in case a compressed file is downloaded.
cd ..
mv ./tmp/*mage ./"$APP"
# Keep this space in sync with other installation scripts
rm -R -f ./tmp || exit 1
echo "$version" > ./version
chmod a+x ./"$APP" || exit 1

# LINK TO PATH
ln -s "/opt/$APP/$APP" "/usr/local/bin/$APP"

# SCRIPT TO UPDATE THE PROGRAM
cat >> ./AM-updater << 'EOF'
#!/bin/sh
set -u
APP=kdegames
SITE="ivan-hc/KDE-games-suite-appimage"
version0=$(cat "/opt/$APP/version")
version=$(curl -Ls https://api.github.com/repos/ivan-hc/KDE-games-suite-appimage/releases | sed 's/[()",{} ]/\n/g' | grep -oi "https.*mage$" | grep -vi "i386\|i686\|aarch64\|arm64\|armv7l" | head -1)
[ -n "$version" ] || { echo "Error getting link"; exit 1; }
if command -v appimageupdatetool >/dev/null 2>&1; then
	cd "/opt/$APP" || exit 1
	appimageupdatetool -Or ./"$APP" && chmod a+x ./"$APP" && echo "$version" > ./version && exit 0
fi
if [ "$version" != "$version0" ]; then
	mkdir "/opt/$APP/tmp" && cd "/opt/$APP/tmp" || exit 1
	notify-send "A new version of $APP is available, please wait"
	wget "$version" || exit 1
	# Use tar fx ./*tar* here for example in this line in case a compressed file is downloaded.
	cd ..
	mv --backup=t ./tmp/*mage ./"$APP"
	chmod a+x ./"$APP" || exit 1
	echo "$version" > ./version
	rm -R -f ./*zs-old ./*.part ./tmp ./*~
	notify-send "$APP is updated!"
else
	echo "Update not needed!"
fi
EOF
chmod a+x ./AM-updater || exit 1

# LAUNCHER & ICON
./"$APP" --appimage-extract ".junest/usr/share/icons/hicolor/128x128/apps/*" > /dev/null
./"$APP" --appimage-extract ".junest/usr/share/applications/*" > /dev/null
for m in $METAPKG; do
	cp ./squashfs-root/.junest/usr/share/icons/hicolor/128x128/apps/*"$m"* /opt/"$APP"/icons/ 2>/dev/null
done
cd /opt/"$APP"/icons
for file in *.png; do mv -- "$file" "${file%%.png}"; done
cd ..

mkdir /opt/"$APP"/launchers
for m in $METAPKG; do
	cp ./squashfs-root/.junest/usr/share/applications/*"$m"* /opt/"$APP"/launchers/ 2>/dev/null
done
cd /opt/"$APP"/launchers
for f in *; do mv "$f" "$APP-${f%.desktop}-AM.desktop"; done
sed -i "s#Exec=#Exec=/opt/kdegames/kdegames #g" /opt/"$APP"/launchers/*.desktop
sed -i "s#Icon=#Icon=/opt/kdegames/icons/#g" /opt/"$APP"/launchers/*.desktop
sed -i "s/^Name\(.*\)$/Name\1 [$APP]/" /opt/"$APP"/launchers/*.desktop
cp /opt/"$APP"/launchers/*.desktop /usr/local/share/applications/

rm -R -f /opt/"$APP"/launchers
rm -R -f /opt/"$APP"/squashfs-root
