#!/bin/ash

export TEXTDOMAIN=frugalpup
export OUTPUT_CHARSET=UTF-8
export TEXTLANG=en

do_exit() {
	[ "$CACHE_FN" ] && [ -f "$CACHE_FN" ] && rm "$CACHE_FN"
	[ -f "$TMP_LIST" ] && rm "$TMP_LIST"
	if [ "$1" ]; then
		yad $YAD_STD_OPTS --title "${Tt}" --width=400 --text-align=center \
			--text "${MuBig}${1}${MuBe}" \
			--button=${TbOk}!gtk-ok:0
	fi
	exit $2
}

error_exit() {
	[ "$CACHE_FN" ] && [ -f "$CACHE_FN" ] && rm "$CACHE_FN"
	do_exit "$1" 1
}

normal_exit() {
	do_exit "$1" 0
}

myName="${0##*/}"
[ -e "/tmp/${myName}_debug_flag" ] && set -x && exec &> "/tmp/${myName}_$$.log"

EXE_DIR="$(dirname $(readlink -f ${0}))"
COMN_FN="$EXE_DIR/frugalpup-common"
[ -f "$COMN_FN" ] && . "$COMN_FN"

Tt="${TnFrugal} ${TnVer}"

[ -f "$UTILS_DIR/functions_part" ] || error_exit "$(printf "$(gettext 'File %s not found')" "${MuPurple}$UTILS_DIR/functions_part${MuEnd}")"

EFI_TAR=''
if [ -s "$PUP_GRUB/$EFI_FN" ]; then
	EFI_TAR="$PUP_GRUB/$EFI_FN"
else
	[ -s "$EXE_DIR/$EFI_FN" ] && EFI_TAR="$EXE_DIR/$EFI_FN"
fi
[ "$EFI_TAR" ] || error_exit "$(gettext 'grub2-efi support missing')"

MBR_TAR=''
if [ -s "$PUP_GRUB/$MBR_FN" ]; then
	MBR_TAR="$PUP_GRUB/$MBR_FN"
else
	[ -s "$EXE_DIR/$MBR_FN" ] && MBR_TAR="$EXE_DIR/$MBR_FN"
fi
[ "$MBR_TAR" ] || error_exit "$(gettext 'grub2-mbr support missing')"

if [ ! -e '/usr/share/icons/PuppyStandard' ]; then
	if [ -e '/usr/share/icons/Puppy Standard' ]; then
		ln -s 'Puppy Standard' '/usr/share/icons/PuppyStandard'
	elif [ -e '/usr/share/icons/PMaterial' ]; then
		ln -s 'PMaterial' '/usr/share/icons/PuppyStandard'
	fi
fi
if [ -d '/usr/share/icons/PuppyStandard' ]; then
	BOOT_ICON='/usr/share/icons/PuppyStandard/16/actions/gtk-save.svg'
	ISO_ICON='/usr/share/icons/PuppyStandard/16/devices/cdrom.svg'
	HELP_ICON='/usr/share/icons/PuppyStandard/16/actions/gtk-help.svg'
	EXIT_ICON='/usr/share/icons/PuppyStandard/16/actions/application-exit.svg'
	SET_ICON='/usr/share/icons/PuppyStandard/16/categories/preferences.svg'
fi
PUP_ICON="$EXE_DIR/icons/linux.png"
if [ -e "$EXE_DIR/doc/${LANG%.*}/index.html" ]; then
	HELP_FN="$EXE_DIR/doc/${LANG%.*}/index.html"
elif [ -e "$EXE_DIR/doc/${LANG%_*}/index.html" ]; then
	HELP_FN="$EXE_DIR/doc/${LANG%_*}/index.html"
else
	HELP_FN="$EXE_DIR/doc/en/index.html"
fi

TMP_LIST="/tmp/${myName}_$$_tmp_list.txt"

[ -f "$TMP_LIST" ] && rm "$TMP_LIST"
echo "" >> "$TMP_LIST"
echo "" >> "$TMP_LIST"
echo "" >> "$TMP_LIST"
echo "" >> "$TMP_LIST"
echo "" >> "$TMP_LIST"
echo "defaulthtmlviewer $HELP_FN" >> "$TMP_LIST"
echo 'ash -c "echo 2; kill -s SIGUSR2 $YAD_PID;"' >> "$TMP_LIST"
echo 'ash -c "echo 4; kill -s SIGUSR2 $YAD_PID;"' >> "$TMP_LIST"
echo 'ash -c "echo 6; kill -s SIGUSR2 $YAD_PID;"' >> "$TMP_LIST"
echo 'ash -c "echo 8; kill -s SIGUSR2 $YAD_PID;"' >> "$TMP_LIST"

TbHelpPop="$(gettext 'View help pages')"
TbSetPop="$(gettext 'Execute frugalpup-settings')"
TbPupPop="$(gettext 'Execute frugalpup-puppyfiles')"
TbBootPop="$(gettext 'Execute frugalpup-bootfiles')"
TbCdPop="$(gettext 'Execute frugalpup-bootcd')"

Tm1="$(gettext 'This utility installs/manages multiple Puppy frugal installs.')"
Tm2="$(gettext 'Click the corresponding button to execute a facility.')"
Tm3="$(gettext 'button:')"
Tm5="$(printf "$(gettext 'View the help pages for %s.')" "${MuPurple}${TnFrugal}${MuEnd}")"
Tm6="$(gettext 'Separate save location')"
Tm7="$(gettext 'Kernel boot parameters')"
Tm8="$(gettext 'Pfix boot parameter')"
Tm9="$(printf "$(gettext 'Modify the config file %s.')" "${MuPurple}${CONFIG_FN}${MuEnd}")"
Tm10="$(gettext $'Enable/disable the display of optional advanced dialogs,\n%s, %s\nand %s')"
Tm11="$(printf "${Tm10}" "${MuPurple}${Tm6}${MuEnd}" "${MuPurple}${Tm7}${MuEnd}" "${MuPurple}${Tm8}${MuEnd}")"
Tm13="$(gettext 'Setup a Puppy frugal install directory with Puppy files.')"
Tm14="$(gettext 'Use this facility to create or update a Puppy frugal install directory, with appropriate Puppy release files.')"
Tm15="$(gettext 'Setup a boot partition with grub2 files for Puppy installs.')"
Tm16="$(gettext 'Use this facility to setup or update the boot configuration files on a fat32 boot partition.')"
Tm17="$(gettext 'May overwrite some existing boot files.')"
Tm18="$(gettext 'Create an ISO file with grub2 files to boot Puppy installs.')"
Tm19="$(gettext "This is for older machines that can't boot from a usb stick.")"
Tm20="$(gettext 'Use this facility to create a CD/DVD that can boot existing Puppy frugal installs.')"

facilityId=''
while :; do
	facilityId=$(yad $YAD_STD_OPTS --title "${Tt}" --text-align=center \
		--text="${Tm1}

${Tm2}" \
		--form --columns=2 \
		--field="${MuBlue}${TbHelp}${MuEnd} ${Tm3}
${Tm5}:LBL" \
		--field="${MuBlue}${TbSet}${MuEnd} ${Tm3}
${Tm9}
${Tm11}:LBL" \
		--field="${MuBlue}${TbPup}${MuEnd} ${Tm3}
${Tm13}
${Tm14}:LBL" \
		--field="${MuBlue}${TbBoot}${MuEnd} ${Tm3}
${Tm15}
${Tm16}
${MuRed}${Tm17}${MuEnd}:LBL" \
		--field="${MuBlue}${TbCd}${MuEnd} ${Tm3}
${Tm18}
${Tm19}
${Tm20}:LBL" \
		--field="${TbHelp}!${HELP_ICON}!${TbHelpPop}:FBTN" \
		--field="${TbSet}!${SET_ICON}!${TbSetPop}:FBTN" \
		--field="${TbPup}!${PUP_ICON}!${TbPupPop}:FBTN" \
		--field="${TbBoot}!${BOOT_ICON}!${TbBootPop}:FBTN" \
		--field="${TbCd}!${ISO_ICON}!${TbCdPop}:FBTN" \
		--rest="$TMP_LIST" \
		--button="${TbExit}!${EXIT_ICON}:0") 2>/dev/null
	STATUS=$?
	[ $STATUS -eq 0 ] && break # via exit button
	[ $STATUS -gt 200 ] && break # via window close
	case $facilityId in
		2) "$EXE_DIR/frugalpup-settings" ;;
		4) "$EXE_DIR/frugalpup-puppyfiles" ;;
		6) "$EXE_DIR/frugalpup-bootfiles" ;;
		8) "$EXE_DIR/frugalpup-bootcd" ;;
	esac
done

normal_exit

exit
#Tm="$(gettext '')"
#Tm="$(printf "$(gettext '')" "")"
