#!/bin/sh

PBF_URL="https://download.geofabrik.de/europe/monaco-latest.osm.pbf"
PBF_FILE="monaco-latest.osm.pbf"
XML_FILE="monaco-latest.osm"
PBF_REPORT="pbf-report.txt"
XML_REPORT="xml-report.txt"

TEMPDIR="$(mktemp -d)"

cd "${TEMPDIR}" || exit 1

echo "Downloading PBF file"
wget -q "${PBF_URL}" -O "${PBF_FILE}"
RC=$?

if [ "${RC}" -ne 0 ]; then
    cd "${OLDPWD}" || exit 1
    rm -rf "${TEMPDIR}"

    exit "${RC}"
fi

echo
echo "Converting PBF to XML"
osmosis --read-pbf file="${PBF_FILE}" --write-xml file="${XML_FILE}"
RC=$?

if [ "${RC}" -ne 0 ]; then
    cd "${OLDPWD}" || exit 1
    rm -rf "${TEMPDIR}"

    exit "${RC}"
fi

echo
echo "Generating PBF report"
osmosis --read-pbf file="${PBF_FILE}" --report-entity file="${PBF_REPORT}"
RC=$?

if [ "${RC}" -ne 0 ]; then
    cd "${OLDPWD}" || exit 1
    rm -rf "${TEMPDIR}"

    exit "${RC}"
fi

echo
echo "Generating XML report"
osmosis --read-xml file="${XML_FILE}" --report-entity file="${XML_REPORT}"
RC=$?

if [ "${RC}" -ne 0 ]; then
    cd "${OLDPWD}" || exit 1
    rm -rf "${TEMPDIR}"

    exit "${RC}"
fi

echo
echo "Comparing PBF and XML reports"
diff -u "${PBF_REPORT}" "${XML_REPORT}"
RC=$?

if [ "${RC}" -ne 0 ]; then
    cd "${OLDPWD}" || exit 1
    rm -rf "${TEMPDIR}"

    exit "${RC}"
fi

cd "${OLDPWD}" || exit 1
rm -rf "${TEMPDIR}"

exit "${RC}"
