#!/bin/bash

DATASET_URL="https://grass.osgeo.org/sampledata/spearfish_grass70data-0.3.tar.gz"
DATASET_FILE="spearfish.tar.gz"

TEMPDIR="$(mktemp -d)"

cd "${TEMPDIR}" || exit 1

CMD=("wget" "-q" "${DATASET_URL}" "-O" "${DATASET_FILE}")

echo "Downloading dataset: ${CMD[@]}"
${CMD[@]}
RC=$?

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

    exit "${RC}"
fi

echo

CMD=(tar xaf "${DATASET_FILE}")

echo "Unpacking dataset: ${CMD[@]}"
${CMD[@]}
RC=$?

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

    exit "${RC}"
fi

echo

CMD=("gdalinfo" ./spearfish*/PERMANENT/cellhd/geology)

echo "Executing: GISBASE="$(ls -d /usr/lib/grass??)" PROJ_NETWORK=ON ${CMD[@]}"
GISBASE="$(ls -d /usr/lib/grass??)" \
PROJ_NETWORK=ON \
${CMD[@]}
RC=$?

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

    exit "${RC}"
fi

echo

CMD=("ogrinfo" "-so" "-al" ./spearfish*/PERMANENT/vector/roads/head)

echo "Executing: GISBASE="$(ls -d /usr/lib/grass??)" PROJ_NETWORK=ON ${CMD[@]}"
GISBASE="$(ls -d /usr/lib/grass??)" \
PROJ_NETWORK=ON \
${CMD[@]}
RC=$?

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

# ogrinfo fails on 32bit architectures: https://github.com/OSGeo/grass/issues/2631
if [ "${RC}" -ne 0 ] && [ "$(dpkg-architecture -qDEB_HOST_ARCH_BITS 2> /dev/null)" = "32" ]; then
    echo "Ignoring test failures on 32 bit architecture"
    RC=77
fi

exit "${RC}"
