#!/bin/bash
#___________________________________________________________________
#
#  RESTAURAR IMAGEN INCREMENTAL
#___________________________________________________________________
#
# Parámetros recibidos desde el cliente:
#
# $1 Número de disco
# $2 Número de particion
# $3 Nombre canónico de la imagen básica (sin extensión)
# $4 Dirección del repositorio
# $5 Nombre canónico del software incremental (sin extensión)
# $5 Es una cadena "nnnn" tipo flags que codifica varios parametros.
#		Tiene el formato "nnnn" donde "n" vale 0 ó 1.	
#		1XXX: Borrar la particion de destino antes de restaurar la imagen incremental
#		X1XX: Copiar Imagen incremental también a la cache 
#		XX1X: Borrar previamente la imagen incremental de la cache antes de copiarla
#		XXX1: No borrar archivos en destino
#		El valor X indica que no importa el valor que tenga el dato
# $7 Método de clonación 0=Desde caché 1=Desde repositorio
# $8 Ruta de origen de la Imagen (Carpeta)
#___________________________________________________________________
#
# Control parámetros
#___________________________________________________________________

	PROG="$(basename $0)"
	if [ $# -lt 6 ]; then
		usage=" ndisco nparticion nombre_imagen_basica ip_repositorio copiar_a_caché "
		usage="$usage Borrar_cache_previamente metodo_clonación Ruta_origen"
		ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: $PROG $usage"
		exit $?
	fi
	
	# Llamada a la función de sincronización.
	coproc /opt/opengnsys/bin/browser -qws http://localhost/cgi-bin/httpd-log.sh
	ogRestaurarSoftIncremental "$@"
	kill $COPROC_PID
	exit

# Versión 2
# Para probar la versión 2 comentar las dos líneas anteriores

# Trasferencias comprimidas
#export ogcompress="true"

DIFFEXT=".diff"

[ $7 -eq  0 ] && ORIG="CACHE" || ORIG="REPO"

flag=$5
echo "flah:$flag">/tmp/log
DELIMG=${flag:0:1}  # No se puede borra la imagen despues de restaurar la compreta
COPYCACHE=${flag:1:1}
DELCACHE=${flag:2:1}
NODELETEFILE=${flag:3:1} # No tiene sentido en las diferenciales 

echo -n "" &>$OGLOGSESSION

if [ $COPYCACHE -eq 1 ]; then
        ORIG="CACHE"
fi
if [ $DELCACHE -eq 1 ]; then
        echo "Borramos imagen de la cache" &>>$OGLOGSESSION
        CACHEFILE=$(ogGetPath "CACHE" "$5$DIFFEXT") && rm -rf $CACHEFILE
fi

restoreDiffImage "$ORIG" "$5"   "$1" "$2"  &>>$OGLOGSESSION

