#!/bin/bash

# run extern/icu/tzdata/update.sh and compare the resulting .zip files with the
# files shipped upstream

set -e
set -u

TMP=$(mktemp -d --suffix=.tmp "$(basename "$0")-XXXXXXXXXX")
trap 'rm -rf "$TMP"' EXIT
trap 'rm -rf "$TMP"; exit 2' INT TERM QUIT

SRC="extern/icu/tzdata"
mkdir "$TMP/shipped"
cp "$SRC/le.zip" "$SRC/be.zip" "$TMP/shipped/"

echo "Present zip files checksums:"
md5sum "$SRC/le.zip" "$SRC/be.zip"

(cd "$SRC" && sh update.sh)

echo "Updated zip files checksums:"
md5sum "$SRC/le.zip" "$SRC/be.zip"

mkdir "$TMP/shipped/le" "$TMP/shipped/be"
mkdir -p "$TMP/new/le" "$TMP/new/be"

cp "$SRC/le.zip" "$SRC/be.zip" "$TMP/new/"

RESULT=0

for e in le be; do
    (cd "$TMP/shipped/$e" && unzip -q "../$e.zip")
    (cd "$TMP/new/$e" && unzip -q "../$e.zip")
    for f in "$TMP/shipped/$e/"*; do
        ff="$(basename "$f")"
        if cmp "$f" "$TMP/new/$e/$ff"; then
           echo "$e/$ff compares OK"
       else
           echo "$ff differs!"
           RESULT=1
        fi
    done
done

if [ "$RESULT" = "0" ]; then
    echo "Restoring upstream zip files"
    for e in le be; do
        mv "$TMP/shipped/$e.zip" "$SRC/$e.zip"
        md5sum "$SRC/$e.zip"
    done
else
    echo "Difference found. Leaving updated zip files"
fi

exit $RESULT
