#!/bin/bash

FICHFUNCS="/usr/bin/vx-funcs-bash"
[ -f "${FICHFUNCS}" ] && . "${FICHFUNCS}"

if [[ -z "${1}" ]] || [ ! -f "${1}" ] ; then
	TITULO="Error en la Llamada al Programa"
	TEXTO="Debes Introducir al menos un parámetro: la ruta de un Archivo"
	vx-mensaje_y_salir "${TITULO}" "${TEXTO}" "1" "info" "salir"
fi

# Obtenemos la lista de los parámetros recibidos:
# Recibimos una lista de archivos md5 para su posterior comprobación (*.md5 o *.md5sum)
# Si procede de un "Custom Action": %F son la lista de todas las rutas absolutas de los archivos seleccionados
NUMPARAM="${#}"

INCREMENTO="$(echo 100/$NUMPARAM | bc)"
PORCENTAJE="$(( 0 + ${INCREMENTO} ))"
NARCHIVO=1

RESULTADO=""
# Comprobamos:
# 1) Que hay parámetros
# 2) Que los parámetros son ficheros existentes
until test -z "${1}" ; do
    echo "${PORCENTAJE}"
    if test -f "${1}" ; then
        FICH="$(basename "${1}")"
        FICHMD5="${FICH}.md5"
        DIRBASE="$(dirname "${1}")"
   
        echo "#=> Generando el MD5 de ${FICH} ..."
        if md5sum "${1}" > "${DIRBASE}/${FICHMD5}" ; then
            RESULTADO="${RESULTADO}#=> Ok: ${FICH} - MD5 Generado correctamente \n"
        else
            RESULTADO="${RESULTADO}#=> Error: No se ha podido generar el MD5 de ${FICH}\n"
        fi
    else
        RESULTADO="${RESULTADO}#=> Error: Problemas ... ${FICH} no es un archivo ...\n"
    fi
    echo "${RESULTADO}"
    ((++NARCHIVO))
    PORCENTAJE="$(( ${PORCENTAJE} + ${INCREMENTO} ))"
    shift
done