#!/bin/sh

DAT_DIR="/var/lib/geoip-database-contrib"

GEOIP_URL="http://data.mageprofis.de/geoiplegacy/"

GEOLITE_COUNTRY_PATH=""
GEOLITE_COUNTRY_FILE="GeoIP.dat.gz"

GEOLITE_COUNTRY_IPV6_PATH=""
GEOLITE_COUNTRY_IPV6_FILE="GeoIPv6.dat.gz"

GEOLITE_CITY_PATH=""
GEOLITE_CITY_FILE="GeoLiteCity.dat.gz"

GEOLITE_CITY_IPV6_PATH=""
GEOLITE_CITY_IPV6_FILE="GeoLiteCityv6.dat.gz"

GEOLITE_ASNUM_PATH=""
GEOLITE_ASNUM_FILE="GeoIPASNum.dat.gz"

GEOLITE_ASNUM_IPV6_PATH=""
GEOLITE_ASNUM_IPV6_FILE="GeoIPASNumv6.dat.gz"

FAILED=0

WGET_HASCONFIG="false"
if [ -f /etc/update-geoip-database.conf ]; then
    WGET_HASCONFIG="true"
fi

for url in \
    "$GEOIP_URL$GEOLITE_COUNTRY_PATH$GEOLITE_COUNTRY_FILE" \
    "$GEOIP_URL$GEOLITE_COUNTRY_IPV6_PATH$GEOLITE_COUNTRY_IPV6_FILE" \
    "$GEOIP_URL$GEOLITE_CITY_PATH$GEOLITE_CITY_FILE" \
    "$GEOIP_URL$GEOLITE_CITY_IPV6_PATH$GEOLITE_CITY_IPV6_FILE" \
    "$GEOIP_URL$GEOLITE_ASNUM_PATH$GEOLITE_ASNUM_FILE" \
    "$GEOIP_URL$GEOLITE_ASNUM_IPV6_PATH$GEOLITE_ASNUM_IPV6_FILE"
do
    echo "Downloading: $url"

    # Download file in the same directory as the final one so that the "mv"
    # below can be atomic.
    TEMPGZ=$(mktemp --tmpdir=$DAT_DIR --suffix=.gz)
    TEMP=${TEMPGZ%.gz}
    trap "rm -f $TEMP $TEMPGZ" 0
    FILEGZ=$(basename $url)
    FILE=${FILEGZ%.gz}

    if [ "$WGET_HASCONFIG" = "true" ]; then
      /usr/bin/wget -q --config=/etc/update-geoip-database.conf -t3 -T15 "$url" -O $TEMPGZ
    else
      /usr/bin/wget -q -t3 -T15 "$url" -O $TEMPGZ
    fi

    if [ "$?" != "0" ]
    then
        echo "Failed to download $url"
    else
        /bin/gunzip -f $TEMPGZ

        if [ "$?" != "0" ]
        then
            echo "Failed to decompress $TEMPGZ"
        else
            chmod 644 $TEMP
            mv $TEMP $DAT_DIR/$FILE
        fi
    fi

    rm -f $TEMP $TEMPGZ
    # Accidentally create by versions 1.9 though 1.11
    rm -f /usr/share/GeoIP/$FILEGZ
done

exit 0
