#!/bin/sh

# AM INSTALL SCRIPT VERSION TOOLPACKS EXTRAS
set -u
APP="puddletag"
SRC="https://pkg.ajam.dev/$(uname -m)"
TYPE="NixAppImage"
SITE="${SRC}/${APP}.${TYPE}"

# CREATE DIRECTORIES AND ADD REMOVER
[ -n "${APP}" ] && mkdir -p "/opt/${APP}" "/opt/${APP}/icons" && cd "/opt/${APP}" || 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 -qfsSL "${SITE}.version")"
wget "${SITE}" -O "./${APP}" || 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="puddletag"
SRC="https://pkg.ajam.dev/$(uname -m)"
TYPE="NixAppImage"
VERSION0=$(cat "/opt/${APP}/version")
VERSION="$(curl -qfsSL "${SRC}/${APP}.${TYPE}.version")"
[ -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 "${SRC}/${APP}.${TYPE}" || exit 1
	cd ..
	mv --backup=t "./tmp/${APP}.${TYPE}" "./${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 *.desktop 1>/dev/null && mv ./squashfs-root/*.desktop ./"${APP}".desktop
./"${APP}" --appimage-extract .DirIcon 1>/dev/null && mv ./squashfs-root/.DirIcon ./DirIcon
sed -i "s#Exec=[^ ]*#Exec=${APP}#g; s#Icon=.*#Icon=/opt/${APP}/icons/${APP}#g" "./${APP}.desktop"
mv "./${APP}.desktop" "/usr/local/share/applications/${APP}-AM.desktop" && mv ./DirIcon "./icons/${APP}"
rm -R -f ./squashfs-root
