#/**  
# CreateImageFromPartition: @brief Crea una imagen de la particion indicada, utilizando el programa definido en las variable $CloneImageNTFS y $CloneImageEXT23
#@param  $1 int DiskEAC
#@param $2 int_PartitionEAC
#@param $3 str_Repositorio ......... parametro pasado a ConectToRepo, admite $REPO  $CACHE   str_IP_servidorAlterno
#@param $4 str_pathbase .............. Pathbase, directorio relativo, de la imagen, en EAC, se ha definido que todo repositorio comience por hdimages, pero puede variar, para adaparse a usb, o cualquier otro almacenamiento.
#@param $5 str_NameImage.str_compresion	.......... (como compresion admite gzip y lzop)
#@param ejemplo: CreateImageFromPartition  1               1                   $IP              hdimages/pruebas/   base.gzip
#@return la propia de la herramienta de clonacion partimage o ntfsclone
#@return genera la imagen con el nombre (imagen.compresion), y se le a?ade un guion y el numero de particion(parametro $2).
#@return Tambien se solicita al servidor EAC, la creaci?n del fichero meta torrent, que tendra el nombre tal base.gzip-1.torrent,
#@return Tambien se crea el fichero base.gzip-1.mcast con informacion para su uso con multicast, tal base.gzip-1.mcast
#@warning  Salidas de errores no determinada
#@attention
#@note	 Pendiente: que admita como segundo parametro el valor 0 (para que identifique el MBR del disco)
#@version 0.1       Date: 27/10/2008                 Author Antonio J. Doblas Viso. Universidad de Malaga
#*/
if [ $# != 5 ]
then
	echo "sintaxis: CreateImageFromPartition <ndisco> <nparticion> <iprespositorio> <pathbase> 		<nombreimagen.compresion>"
	echo "ejemplo: CreateImageFromPartition 	1  		1 		      \$IP              images/pruebas/   base.gzip"
	echo " en iprepositorio admite cualquier ip de un servdior EAC, se llama a la funcion MountRepo ip"
fi
if [ $# = 5 ]
then
	CloneImageNTFS="${CLONETOOLSNTFS:-partimage}"
	CloneImageEXT23="${CLONETOOLSEXT:-partimage}"
	CompresionImage="${CLONETOOLSCOMPRESSOR:-gzip}"

	disco=`ogDiskToDev $1 $2`
	ogUnmountPartition $1 $2
	fs=`ogGetFsType $1 $2`

	echo determinando tipo de Sistema Operativo y consulando la variable global CloneImageNTFS:  $fs
	case $fs in
		"NTFS")
			case $CloneImageNTFS in
				"ntfsclone")
					imaged="ntfsclone --force --save-image -O - $disco"
					program=ntfsclone
				;;
				"partimage")
					imaged="partimage -M -f3 -o -d -B gui=no -c -z0 --volume=0 save $disco stdout"
					program=partimage
				;;
				"partclone")
					imaged="partclone.ntfs -c -F -s $disco"
					program=partclone.ntfs
					#zcat ~/image_sda1.pcl.gz | partclone.ext4 -r -o /dev/sda1
				;;
			esac
		;;
		EXT[234]|REISERFS)
			case $CloneImageEXT23 in
				"partimage")
					imaged="partimage -M -f3 -o -d -B gui=no -c -z0 --volume=0 save $disco stdout"
					program=partimage
				;;
				"partclone")
					echo "partclone"
					imaged="partclone.ext -c -C -s $disco"
					program=partclone.ext
				;;
			esac
		;;
	esac

	# utilizando mbuffer para reducir posibles errores de acceso a discos
	imaged="$imaged | mbuffer -m 40%"
	#metodo de compresion.
	case $CompresionImage in
		"gzip")
			comando="$imaged | gzip -c >"
		;;
		"lzop")
			comando="$imaged | lzop >"
		;;
	esac

	#. determnamos el fichero donde se almacenar? la image
	firstcamino=`ogNewPath $3 $4`
	camino=$firstcamino$5
	echo $camino
	sleep 1

	#preparamos y ejecutamos el comanod a realizar
	echo "Creando imagen particion $disco programa $program  compresion $CompresionImage en el repositorio $3 como $4 $5 - $2"
	comando="$comando ${camino}-$2"
	echo "comando: $comando"
	echo $comando > /tmp/run.sh
	sh /tmp/run.sh
	unset comando

fi
