#!/bin/bash
# Menu Avanzado
function menu_avanzado
{

	exec 3>&1
	
	result=$(dialog --nocancel --ok-label "Aceptar" \
			--default-item "X" --backtitle "..:: \Z3Sistema de Recuperación - MENU AVANZADO \Zn ::.." \
			--colors \
			--title " \Z3Elija la tarea a realizar\Zn " \
			--menu  "" 15 80  6 \
			"1" "Guardar partición de Windows 8.1 al disco de recuperación" \
			"2" "Guardar partición de Huayra GNU/Linux al disco de recuperación" \
			"3" "Guardar ambos Sistemas Operativos al disco de recuperación" \
			"4" "Limpieza de Historial para preparar Imágen" \
			"5" "Eliminar \Z3permanentemente\Zn éste menu" \
			"X" "Volver al Menu Principal" 2>&1 1>&3)

	return_value=$?
	exec 3>&-

	case $return_value in
	  $DIALOG_OK)
		case $result in
			1)
				guardar_windows
			;;
			2)
				guardar_huayra
			;;
			3)
				guardar_ambos
			;;
			4)
				limpieza_particiones
			;;
			5)
				eliminar_menu_adv
			;;
			"")
				menu_avanzado
			;;
			X)
				menu_principal
			;;
		esac
		;;
	  $DIALOG_CANCEL)
		menu_principal
		;;
	  $DIALOG_ESC)
		menu_principal
		;;
	esac	
	
}

# Limpia los historiales de las particiones
function limpieza_particiones
{
	exec 3>&1
	result=$(dialog --backtitle "..:: \Z3Sistema de Recuperación - MENU AVANZADO \Zn ::.." \
		--title "Eliminar historial de particiones" \
		--colors \
		--yesno "¿Desea eliminar archivos de logs e historiales para preparar las particiones, antes de hacer la imágen final?" 8 60 2>&1 1>&3)

	return_value=$?
	exec 3>&-

	case $return_value in
	  $DIALOG_OK)
		if [ $DEBUG == 1 ]; then
			dialog --title "Debug" --msgbox "Eliminando archivos..." 0 0
		else
			# Particion de Huayra
			TMPMOUNT=`mktemp -d`
			mount $ROOT_HUAYRA $TMPMOUNT
			rm -f $TMPMOUNT/root/.bash_history
			rm -rf $TMPMOUNT/root/.config
			rm -rf $TMPMOUNT/root/.local
			rm -f $TMPMOUNT/etc/udev/rules.d/70-persistent-net.rules
			rm -f $TMPMOUNT/etc/NetworkManager/system-connection/*
			rm -f $TMPMOUNT/var/cache/apt/archives/*.deb
			rm -f $TMPMOUNT/var/backups/*.gz
			rm -f $TMPMOUNT/var/log/*.gz
			rm -f $TMPMOUNT/var/log/ConsoleKit/*.gz
			rm -f $TMPMOUNT/var/log/cups/*.gz
			rm -f $TMPMOUNT/var/lib/apt/lists/*.gz
			rm -f $TMPMOUNT/home/alumno/.bash_history
			rm -rf $TMPMOUNT/home/alumno/.cache
			rm -rf $TMPMOUNT/home/alumno/.adobe
			rm -f $TMPMOUNT/home/alumno/.local/share/Trash/files/*
			rm -f $TMPMOUNT/home/alumno/.local/share/Trash/info/*
			rm -rf $TMPMOUNT/home/alumno/.mozilla
			rm -f $TMPMOUNT/home/alumno/.xsession-errors*
			rm -f $TMPMOUNT/home/alumno/.local/share/*recently-used*
			rm -rf $TMPMOUNT/home/alumno/.local/share/mc
			rm -f $TMPMOUNT/home/alumno/.huayra-tda-channels.conf
			umount $TMPMOUNT
			
			# Particion de Recuperacion
			rm -rf /var/log/*
			rm -f /root/.bash_history
			rm -f /root/*.deb

			# cambio de hostname (windows y Huayra)
			change-hostname -l -w -y -n CI000000000000
			pause 'Presione [ENTER] para continuar... '
		fi
		menu_avanzado
		;;
	  $DIALOG_CANCEL)
		menu_avanzado
		;;
	  $DIALOG_ESC)
		menu_avanzado
		;;
	esac

}
# Operación para guardar la imagen de windows
function guardar_windows
{
	dialog --nocancel \
		--ok-label "Aceptar" \
		--backtitle "..:: \Z3Sistema de Recuperación - MENU AVANZADO \Zn ::.." \
		--colors \
		--msgbox "Presione aceptar para guardar las particiones: \Z2$PARTS_WIN\Zn como imágen de Restauración de Windows" 0 0
	
	if [ $DEBUG == 1 ]; then
		dialog --title "Debug" --msgbox "ocs-sr -q2 -j2 -z1p -i 2000 -p true saveparts windows-img $PARTS_WIN" 0 0
	else
		efi_umount
		ocs-sr -q2 -j2 -z1p -i 2000 -p true saveparts windows-img $PARTS_WIN
	fi
	menu_avanzado
}

# Operación para guardar la imagen de Huayra
function guardar_huayra
{
	dialog --nocancel \
		--ok-label "Aceptar" \
		--backtitle "..:: \Z3Sistema de Recuperación - MENU AVANZADO \Zn ::.." \
		--colors \
		--msgbox "Presione aceptar para guardar las particiones: \Z2$PARTS_HUAYRA\Zn como imágen de Restauración de Huayra GNU/Linux" 0 0
	
	if [ $DEBUG == 1 ]; then
		dialog --title "Debug" --msgbox "ocs-sr -q2 -j2 -z1p -i 2000 -p true saveparts huayra-img $PARTS_HUAYRA" 0 0
	else
		efi_umount
		ocs-sr -q2 -j2 -z1p -i 2000 -p true saveparts huayra-img $PARTS_HUAYRA
	fi
	menu_avanzado
}

# Operación para guardar ambas imágenes
function guardar_ambos
{
	dialog --nocancel \
		--ok-label "Aceptar" \
		--backtitle "..:: \Z3Sistema de Recuperación - MENU AVANZADO \Zn ::.." \
		--colors \
		--msgbox "Presione aceptar para guardar las particiones: \Z2$PARTS_HUAYRA\Zn como imágen de Restauración de Huayra GNU/Linux asi como \Z2$PARTS_WIN\Zn para Windows" 0 0
	
	if [ $DEBUG == 1 ]; then
		dialog --title "Debug" --msgbox "ocs-sr -q2 -j2 -z1p -i 2000 -p true saveparts huayra-img $PARTS_HUAYRA\n\nocs-sr -q2 -j2 -z1p -i 2000 -p true saveparts windows-img $PARTS_WIN" 0 0
	else
		efi_umount
		ocs-sr -q2 -j2 -z1p -i 2000 -p true saveparts huayra-img $PARTS_HUAYRA
		ocs-sr -q2 -j2 -z1p -i 2000 -p true saveparts windows-img $PARTS_WIN
	fi
	menu_avanzado
	
}

# Eliminación del archivo del menu avanzado
function eliminar_menu_adv
{
	exec 3>&1
	result=$(dialog --backtitle "..:: \Z3Sistema de Recuperación - MENU AVANZADO \Zn ::.." \
		--title "Eliminar menu avanzado" \
		--colors \
		--yesno "Ésta operación va a \Z2eliminar\Zn éste item de menú avanzado de la herramienta.\n\nPara volver a activarlo, deberá generar el archivo \Z2/etc/default/huayra-recovery\Zn con la variable \Z2ADV_MENU=1\Zn \n\n¿Desea continuar?" 0 0 2>&1 1>&3)

	return_value=$?
	exec 3>&-

	case $return_value in
	  $DIALOG_OK)
		if [ $DEBUG == 1 ]; then
			dialog --title "Debug" --msgbox "Eliminando archivo de menu" 0 0
		else
			rm -f /etc/default/huayra-recovery
		fi
		dialog --ok-label "Aceptar" \
			--backtitle "..:: \Z3Sistema de Recuperación - MENU AVANZADO \Zn ::.." \
			--colors \
			--title "Menu avanzado" --msgbox "El archivo ha sido eliminado" 0 0 

		unset ADV_MENU
		menu_principal
		;;
	  $DIALOG_CANCEL)
		menu_avanzado
		;;
	  $DIALOG_ESC)
		menu_avanzado
		;;
	esac

}

