#!/bin/bash

cd $1

if [ "$2"x != ""x ] ; then
    EXT="$2"
fi

:> MD5SUMS$EXT
:> SHA1SUMS$EXT

# 2 calls to find here to get the ordering right - we *really* want to
# get the jigdo files first
for file in `find * -name \*.jigdo` `find * -name \*.iso`; do
    case $file in
        *.jigdo)
            iso=${file%%.jigdo}.iso
            JIGDO=1
            ;;
        *.iso)
            iso=$file
            JIGDO=0
            ;;
        *)
            echo "Found unexpected file $file!"
            exit 1
            ;;
    esac

    grep -q $iso MD5SUMS$EXT
    if [ $? -ne 0 ] ; then
        MD5=""
        if [ "$JIGDO" == 1 ] ; then
            MD5=`zcat -f $file | awk '/Image Hex MD5Sum/ {print $5}'`
        fi
        if [ "$MD5"x != ""x ] ; then
            echo "$MD5  $iso" >> MD5SUMS$EXT
        else
            echo "No Jigdo help for md5, doing it the long way"
            md5sum $iso >> MD5SUMS$EXT
            grep $iso MD5SUMS$EXT
        fi
    fi

    grep -q $iso SHA1SUMS$EXT
    if [ $? -ne 0 ] ; then
        SHA1=""
        if [ "$JIGDO" == 1 ] ; then
            SHA1=`zcat -f $file | awk '/Image Hex SHA1Sum/ {print $5}'`
        fi
        if [ "$SHA1"x != ""x ] ; then
            echo "$SHA1  $iso" >> SHA1SUMS$EXT
        else
            echo "No Jigdo help for sha1, doing it the long way"
            sha1sum $iso >> SHA1SUMS$EXT
            grep $iso SHA1SUMS$EXT
        fi
    fi

done
