#!/bin/bash
#/**
#@brief Comprime el fichero ogclient.img en ogclient.sqfs.
#@param none
#@exeption 1 No es usuario root
#@exeption 2 No existe el fichero ogclient.img
#@date 2013-11.27
#*/
PROG="$(basename $0)"
# Mostrar ayuda: Si se solicita, si faltan parametros o $3 no es SYNC1 o SYNC2.
if [ "$*" == "help" ]; then
        echo -e "$PROG: Comprime el fichero ogclient.img en ogclient.sqfs. \n"
                "       Uso: $PROG (sin parametros)"
        exit 0
fi

if [ "$USER" != "root" ]; then
        echo "$PROG: Error: solo ejecutable por root" >&2
        exit 1
fi


DATE=$(date +%y-%m-%d)
OPENGNSYS=${OPENGNSYS:-"/opt/opengnsys"}
OGCLIENTBASEDIR=$OPENGNSYS/tftpboot/ogclient/;
OGCLIENTFILE=${OGCLIENTBASEDIR}ogclient.img;
OGCLIENTSQFS=${OGCLIENTBASEDIR}ogclient.sqfs
OGCLIENTMOUNT=${OGCLIENTBASEDIR}ogclientmount;
OGCLIENTSIZEMB=1900;
OGCLIENTLABEL=ogClient;

# Comprobamos que existe el cliente .sqfs
! [ -f $OGCLIENTFILE -a -d $OGCLIENTMOUNT ] && echo "No existe $OGCLIENTFILE o $OGCLIENTMOUNT" && exit 3
# Montamos ogclient.img.
echo "Montamos ogclient.img."
mkdir -p $OGCLIENTMOUNT;
mount | grep $OGCLIENTMOUNT || mount $OGCLIENTFILE $OGCLIENTMOUNT -o loop,offset=32256;

# Si existe ogclient.sqfs hacemos copia de seguridad.
echo "Si existe ogclient.sqfs hacemos copia de seguridad."
[ -f ${OGCLIENTSQFS} ] && mv ${OGCLIENTSQFS} ${OGCLIENTSQFS}.$DATE

# Comprimimos el cliente.
echo "Comprimimos el cliente."
echo "mksquashfs $OGCLIENTMOUNT  ${OGCLIENTSQFS}"
mksquashfs $OGCLIENTMOUNT  ${OGCLIENTSQFS}

# Desmontamos el ogclient.img
echo "Desmontamos el ogclient.img"
umount $OGCLIENTMOUNT

# Generamos nuevo archivo de suma de comprobación.
echo "Generamos nuevo archivo de suma de comprobacion."
mv ${OGCLIENTSQFS}.sum ${OGCLIENTSQFS}.sum.$DATE
md5sum ${OGCLIENTSQFS} |awk '{print $1}' >${OGCLIENTSQFS}.sum
