#/**
#         ogr CreateImageSyntax partition filename [tools]  [levelcompresor]
#@brief   Genera una cadena de texto con la instrucción para crear un fichero imagen
#@param 1  partition             identificador linux del dispositivo particion.
#@param 2  filename           path absoluto del fichero imagen
#@param 3  [opcional] str_tools          herrmaienta de clonacion [partimage, partclone, ntfsclone]
#@param 4  [opcional] str_levelcompresor nivel de compresion. [0 -none-, 1-lzop-, 2-gzip]
#@return  cadena con el comando que se debe ejecutar.
#@exception OG_ERR_FORMAT    formato incorrecto.
#@warning En pruebas iniciales
#@TODO    introducir las herramientas fsarchiver, dd
#@TODO    introducir el nivel de compresion gzip
#@version 1.0 - Primeras pruebas
#@author  Antonio J. Doblas Viso. Universidad de Málaga
#@date    2010/02/08
#*/ ##

local FS TOOL LEVEL PART IMGFILE BUFFER

# Si se solicita, mostrar ayuda.
if [ "$*" == "help" ]; then
    ogr Help "$FUNCNAME" "$FUNCNAME partition filename [tool] [levelcompresor]" \
           "$FUNCNAME /dev/sda1 /opt/opengnsys/images/prueba.img partclone lzop"
    return
fi
# Error si no se reciben al menos los 2 parámetros para obtener el valor default.
[ $# -lt 2 ] && ogr RaiseError $OG_ERR_FORMAT && return $?


PART=`echo $1`
IMGFILE=`echo $2`

case "$#" in
   "2")
   	# Sintaxis por defecto OG PART IMGFILE
   	#echo "partimage -M -f3 -o -d -V0 -B gui=no -c -z1 save $PART $IMGFILE"
    # Se comenta la instruccion que debería ir aqui
    ogr CreateImageSyntax $1 $2 partclone gzip
   ;;
   "4")
   	# Sintaxis condicionada.
   	# comprobamos parametro herramienta compresion.
	TOOL=$(echo $3 | tr [A-Z] [a-z])	
	#ogr CheckProgram $TOOL
	#comprobar parámetro compresor.
	LEVEL=$(echo $4 | tr [A-Z] [a-z])
	#ogr CheckProgram $LEVEL

	# herramienta
	case "$TOOL" in
		"ntfsclone")
			PARAM1="ntfsclone --force --save-image -O - $PART"
		;;
		"partimage"|DEFAULT)
			PARAM1="partimage -M -f3 -o -d -B gui=no -c -z0 --volume=0 save $PART stdout"
		;;
		"partclone")
   			PARAM1=`ogr PartcloneSyntax $PART` || ogr RaiseError $OG_ERR_FORMAT || return $?
		;;
	esac
	# mbuffer
	which mbuffer > /dev/null && PARAM2="| mbuffer -m 40M " || PARAM2=" "

	# nivel de compresion
	case "$LEVEL" in
    	"0"|"none")
    		PARAM3=" > "
    	;;
    	"1"|"lzop")
    		PARAM3=" | lzop > "
    	;;
    	"2"|"gzip")
    		PARAM3=" | gzip -c > "
    	;;
    	"3"|"bzip")
    		PARAM3=" | bzip -c > "
    	;;
	esac
	#sintaxis final.
	echo "$PARAM1 $PARAM2 $PARAM3 $IMGFILE"
	;;
esac
