#!/bin/bash
# Devuelve True o False si detecta que es un fichero MD5

# El contenido del fichero MD5 contiene dos campos:
# 1) El Código MD5 de 32 car.Hex. y 2) la Ruta del archivo del que se generó
ISMD5=0
until [ -z "${1}" ] ; do
    if [ -f "${1}" ] && (( $(wc -l < "${1}") == 1 )) ; then
        COD="$(awk -F' ' '{print $1}' "${1}")"
        RUTA="$(awk -F' ' '{print $2}' "${1}")"
        DIRBASE="$(dirname "${1}")"
            [[ "${RUTA}" =~ ^/ ]] && \
                FICH="${RUTA}" || \
                FICH="${DIRBASE}/${RUTA}"
        if [ -f "${FICH}" ] && \
        (( ${#COD} == 32 )) && \
        [[ "$(file --mime-type -b "${1}")" == "text/plain" ]] && \
        [[ "${1##*.}" =~ ^md5$|^md5sum$|^MD5$|^MD5SUM$ ]] ; then
            ISMD5=1
        else
            ISMD5=0
            break
        fi
    else
        ISMD5=0
        break
    fi
    shift
done

if (( ${ISMD5} == 1 )) ; then
    echo True
    exit 0
else
    echo False
    exit 1
fi