#!/bin/bash

EDIT_HEIGHT=12
EDIT_WIDTH=54
EDIT_CHOICE_HEIGHT=10
BACKTITLE="*** DOSBIAN CONFIGURATION HELPER - Developed by Carmelo Maiolino (C) 2020 *** "
EDIT_TITLE="CHOOSE A CONFIGURATION"

EDIT_OPTIONS=(
        "" ""
        1 " WORK ON DOSBOX-SVN CONFIGURATION "
	2 " WORK ON DOSBOX ECE CONFIGURATION  "
	3 " WORK ON LAUNCHBOX CONFIGURATION  "
        4 " WORK ON DOSBOX-STAGING CONFIGURATION  "
	"" ""
)


MAIN_HEIGHT=18
MAIN_WIDTH=110
MAIN_CHOICE_HEIGHT=16
BACKTITLE="*** DOSBIAN CONFIGURATION HELPER - Developed by Carmelo Maiolino (C) 2020-2024 *** "
MAIN_TITLE="CONFIGURATION HELPER"

MAIN_OPTIONS=(
        "" ""
        "" ""
        1 " VIEW/EDIT CONFIGURATION   -  Change manually configuration  - "
	2 " HDD IMAGE CREATOR         -  Create empty floppy / hdd images  - "
	3 " MOUNT DRIVE               -  Mount drive to a local folder  - "
	4 " MOUNT FILE IMAGE          -  Mount [ Floppy, HDD, CD-ROM ] file images  - "	
	5 " UNMOUNT DRIVE/IMAGE       -  Remove [ Floppy, HDD, CD-ROM ] from configuration  - "
	6 " RESTORE CONFIGURATION     -  Restore original configuration, lose all your settings  - "
)




function edit_configuration
{
	while :
	do

		configuration=$(dialog --clear \
                --backtitle "$BACKTITLE" \
                --title "$EDIT_TITLE" \
		--menu "" \
                $EDIT_HEIGHT $EDIT_WIDTH $EDIT_CHOICE_HEIGHT \
                "${EDIT_OPTIONS[@]}" \
                2>&1 >/dev/tty)

		if [ $? -ne 0 ]; then
			clear;
			exit;
		fi;

		clear

		case $configuration in

			1)  main_menu 1
	    		    break
            		    ;;

			2)  main_menu 2
            		   break 
	    		    ;;

			3)  main_menu 3
            		   break 
	    		    ;;

			4)  main_menu 4
            		   break 
	    		    ;;

		esac
	done
}


function main_menu
{

configuration="${1}"

	while :
	do
		if [ $configuration -eq 1 ]; then

			main_choice=$(dialog --clear \
               	        --backtitle "$BACKTITLE" \
                	--title "WORKING ON DOSBOX-SVN CONFIGURATION" \
			--menu "" \
                	$MAIN_HEIGHT $MAIN_WIDTH $MAIN_CHOICE_HEIGHT \
                	"${MAIN_OPTIONS[@]}" \
                	2>&1 >/dev/tty)
			exit_status=$?

		fi;


		if [ $configuration -eq 2 ]; then

			main_choice=$(dialog --clear \
               	        --backtitle "$BACKTITLE" \
                	--title "WORKING ON DOSBOX ECE CONFIGURATION" \
			--menu "" \
                	$MAIN_HEIGHT $MAIN_WIDTH $MAIN_CHOICE_HEIGHT \
                	"${MAIN_OPTIONS[@]}" \
                	2>&1 >/dev/tty)
			exit_status=$?

		fi;


		if [ $configuration -eq 3 ]; then

			main_choice=$(dialog --clear \
               	        --backtitle "$BACKTITLE" \
                	--title "WORKING ON LAUNCHBOX CONFIGURATION" \
			--menu "" \
                	$MAIN_HEIGHT $MAIN_WIDTH $MAIN_CHOICE_HEIGHT \
                	"${MAIN_OPTIONS[@]}" \
                	2>&1 >/dev/tty)
			exit_status=$?

		fi;


                if [ $configuration -eq 4 ]; then

			main_choice=$(dialog --clear \
               	        --backtitle "$BACKTITLE" \
                	--title "WORKING ON DOSBOX STAGING CONFIGURATION" \
			--menu "" \
                	$MAIN_HEIGHT $MAIN_WIDTH $MAIN_CHOICE_HEIGHT \
                	"${MAIN_OPTIONS[@]}" \
                	2>&1 >/dev/tty)
			exit_status=$?

		fi;


		if [ $exit_status -ne 0 ]; then
		   clear
#		   edit_configuration
		   exit
		fi;

		clear

		case $main_choice in

			1)  if [ $configuration -eq 1 ]; then
				sudo nano /home/dosbian/.dosbox/dosbox-SVN.conf 
			    fi;

			    if [ $configuration -eq 2 ]; then
				sudo nano /home/dosbian/.dosbox/dosbox-ECE.conf 
			    fi;

			    if [ $configuration -eq 3 ]; then
				sudo nano /home/dosbian/programs/launchbx/launchbox.conf 
			    fi;

                            if [ $configuration -eq 4 ]; then
				sudo nano /home/dosbian/.config/dosbox/dosbox-staging.conf 
			    fi;	
	    		    ;;

			2)  menumedia
	    		    ;;

			3)  mountdrive $configuration
	    		    ;;

			4)  imagemount $configuration
	    		    ;;

			5)  unmountdrive $configuration
	    		    ;;

			6)  sudo configrestore $configuration
	    		    ;;

		esac
	done



}


edit_configuration



