#!/bin/bash
USER=$(whoami)
ESTADO1=1
ESTADO2=1
if test $USER = "root"
then
	yad --title "Información" --info --text " A continuación se va a Comprobar si hay espacio \n para redimensionar el sistema de archivos ..." \
	--window-icon vitalinux \
	--image disco-duro \
	--width="350" --height="100" --justify="center" --center --text-align="center" --timeout=5 \
	--button=Continuar:0

	(
	echo "--> Van a empezar las comprobaciones ..."
	echo "--> ¡¡No cierres la ventana!! Espera a que un mensaje te lo indique ..."
	echo "..."
. /etc/default/vx-dga-variables/vx-dga-variables-general.conf
	if test -z $REDIMENSIONADO ; then
		echo "## Averiguamos el tamaño en bytes del disco duro ..."
		TAM_HD=$(sudo lsblk -b | grep "sda" | head -1 | tr -s " " "-" | cut -d "-" -f4)
		echo "## Averiguamos el nombre del grupo de volumen del LVM ..."
		NAMEVG=$(sudo vgs | head -2 | tail -1 | tr -s " " " " | cut -d " " -f2)
		echo "## Averiguamos el número de la partición que contiene el LVM ..."
		NAMEPART=$(sudo pvs | grep $NAMEVG | tr -s " " "-" | cut -d "-" -f2 | cut -d "/" -f3)
		echo "## Averiguamos el tamaño de la partición que contiene el LVM ..."
		LVM_HD=$(sudo lsblk -b | grep $NAMEPART | tr -s " " "-" | cut -d "-" -f4)
		echo "## Averiguamos el tamaño que le queda disponible ..."
		TAM_DIS=$(expr $TAM_HD - $LVM_HD)
		####
		echo "## Comprobamos que el tamaño disponible sea superior a 1GB ..."
		if test $TAM_DIS -ge 10000000000 ; then
			echo "--> Si que es mayor de 1GB ... Va a tratar de redimensionarse el Sistema de Archivos ..."
			echo "## Posición final (byte) de la partición LVM ..."
		  BLVM=$(sudo parted -s /dev/sda unit B print | grep lvm | tr -s " " " " | cut -d " " -f4 | cut -d "B" -f1)
		  ## Aumentamos en 1 el tamaño
		  ## Cantidad de bytes que aumenta
		  MB=$(expr 1024 '*' 1024)
		  INICIO=$(expr $BLVM + $MB)
		  ## Guardamos el número de particiones 
		  ## Guarda en un fichero el número de particiones que tiene.
		  sudo parted -s /dev/sda print | tr -s " " " " | cut -d " " -f2 | grep -v "^$" | grep -v -i [a-z] > /tmp/part1.txt
		  ## Creamos la partición
		  sudo parted -s /dev/sda mkpart primary $(echo $INICIO)B 100%
		  ## Cogemos el número de la nueva partición
		  sudo parted -s /dev/sda print | tr -s " " " " | cut -d " " -f2 | grep -v "^$" | grep -v -i [a-z] > /tmp/part2.txt	  
		  ## Comparamos que ha cambiado
		  NUMPART=$(sudo comm -1 -3 /tmp/part1.txt /tmp/part2.txt)
		  ## Creamos el PV de la nueva partición
		  sudo pvcreate /dev/sda$NUMPART
		  ## Lo añadimos al VG
		  sudo vgextend $NAMEVG /dev/sda$NUMPART
		  echo "## Extendemos el volumen ..."
		  sudo lvextend /dev/$NAMEVG/root --extents +100%FREE
		  echo "## Redimensionamos la partición ..."
		  sudo resize2fs /dev/$NAMEVG/root
			echo "--> Comprueba a través del Widget del Escritorio que el espacio en disco disponible ha cambiado ..."
		else
			echo "--> ¡¡No hay espacio libre disponible para aumentar el Sistema de Archivos!! ..."
  		fi
  	sed -i '/Varibles utilizadas por los paquetes/a REDIMENSIONADO=1' /etc/default/vx-dga-variables/vx-dga-variables-general.conf
	else
		echo "--> Uhmmmm ... Parece que el disco ya fue redimensionado en otra ocasión ..."
	fi

		echo "..."
		echo "--> Ya puedes cerrar la ventana ..."
		) | yad --title "Comprobando ..." --text-info \
			--image disco-duro \
			--window-icon vitalinux \
			--tail \
			--center --width="600" --height="500" --button="Cerrar Ventana":0
else
		yad --title "Redimensionar Sistema de Archivos" \
			--image disco-duro \
			--info --text "No tiene permiso para ejecutar el programa" \
			--window-icon vitalinux \
			--width="400" --height="100" --center --justify="center" --timeout=7 --text-align="center"
fi
