#!/bin/bash

###############################################################################
# Create Shortcut for UExtract												  #
# Copyright © JakeSFR 2013-2026												  #
# License: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html			  #
###############################################################################

MYPATH="$(dirname "$(readlink -f "$0")")"
APPNAME="$(sed -n '4 {s/# \(.*[^[:blank:]]\)[[:blank:]].*/\1/p}' "${MYPATH}/uextract")"
ICON="${MYPATH}/UExtract.png"
YAD_BIN=${YAD_BIN:-yad}

export TEXTDOMAINDIR="${MYPATH}/locale"
export TEXTDOMAIN=uextract
export OUTPUT_CHARSET=UTF-8

# -----------------------------------------------------------------------------
# Add shortcut to ROX pinboard (if in use) and/or to $HOME/Desktop/ (if exists)
# -----------------------------------------------------------------------------

S_QUESTION="$(gettext 'Create shortcut on the desktop?')"

if	[ -e "$HOME/Choices/ROX-Filer/PuppyPin" ] ||
	[ -e "$HOME/.config/rox.sourceforge.net/ROX-Filer/PuppyPin" ] ||
	[ -d "$HOME/Desktop" ]
then
	GUI="${UEXTRACT_GUI:-Xdialog}"	# fallback
	
	if type ${YAD_BIN} >/dev/null 2>&1; then
		[ -z "$UEXTRACT_GUI" ] && GUI=yad
	fi
	
	for GTKDIALOG in gtkdialog4 gtkdialog gtk2dialog gtkdialog_gtk2 gtkwialog gtkdialog3; do
		if type "$GTKDIALOG" >/dev/null 2>&1; then
			[ -z "$UEXTRACT_GUI" ] && GUI=gtkdialog
			break	
		fi
	done
	
	case "$GUI" in
		gtkdialog)
			eval $(echo '
				<window title="'${APPNAME}'" image-name="'${ICON}'" window-position="1" resizable="false">
					<vbox>
						<hbox>
							<pixmap>
								<input file stock="gtk-dialog-question"></input>
							</pixmap>
							<text>
								<label>'${S_QUESTION}'</label>
							</text>
						</hbox>
						<hbox space-fill="true" space-expand="true">
							<button yes>
								<action>EXIT:YES</action>
							</button>
							<button no>
								<action>EXIT:NO</action>
							</button>
						</hbox>
					</vbox>
				</window>
				' | ${GTKDIALOG} -s)
				[ "$EXIT" = 'YES' ] && true || false
			;;
		yad)
			${YAD_BIN} --title="${APPNAME}" --window-icon="${ICON}" \
				--center --image="dialog-question" --text="${S_QUESTION}"  \
				--button="gtk-yes:0" --button="gtk-no:1" --buttons-layout=center
			;;
		*)
			Xdialog --title "$APPNAME" --yesno "${S_QUESTION}" 0 0
			;;
	esac
	
	if [ $? -eq 0 ]; then
		[ -e "$HOME/Choices/ROX-Filer/PuppyPin" ] ||
		[ -e "$HOME/.config/rox.sourceforge.net/ROX-Filer/PuppyPin" ] &&
		rox --RPC <<- EOF
		<?xml version="1.0"?>
		<env:Envelope xmlns:env="http://www.w3.org/2001/12/soap-envelope">
			<env:Body xmlns="http://rox.sourceforge.net/SOAP/ROX-Filer">
				<PinboardAdd>
					<Path>${MYPATH}</Path>
				</PinboardAdd>
			</env:Body>
		</env:Envelope>
		EOF
		
		[ -d "$HOME/Desktop" ] && {
			cp -f "${MYPATH}/UExtract.desktop" "$HOME/Desktop/UExtract.desktop"
			# Fix path to AppRun
			sed -i "s|Exec=./AppRun %F|Exec=${MYPATH}/AppRun %F|" "$HOME/Desktop/UExtract.desktop"
		}
	fi
fi
