#!/bin/bash

set -o nounset

GEOIP_URL="http://pub.3gteam.hu/geoip"

DEST=/usr/share/GeoIP
TMPDIR=/tmp

FAILED=0

function get_db()
{
	dbf=$1

	[ -f ${TMPDIR}/${dbf} ] && rm -f ${TMPDIR}/${dbf}
	[ -f ${TMPDIR}/${dbf}.gz ] && rm -f ${TMPDIR}/${dbf}.gz

	/usr/bin/wget -q -t3 -T15 -O $TMPDIR/${dbf}.gz "${GEOIP_URL}/${dbf}.gz"
	err=$1
	if [ "$?" != "0" ]; then
		echo "ERROR: downloading $dbf"
		exit $?
	fi

	if [ -f ${TMPDIR}/${dbf}.gz ]; then
		gunzip ${TMPDIR}/${dbf}.gz
		mv -f ${TMPDIR}/${dbf} ${DEST}/${dbf}
	else
		echo "ERROR: file not found: ${dbf}.gz"
		exit $?
	fi

}

function copy_chr()
{
	srcd=$1
	src=$2
	chrd=$3

	usrshare=`dirname ${chrd}/${srcd}`

	if [ -d ${usrshare} -a -f ${srcd}/${src} ]; then
		[ -d ${chrd}/${srcd} ] || mkdir ${chrd}/${srcd}
		cp -f ${srcd}/${src} ${chrd}/${srcd}/${src}
	fi
}

[ -d $DEST ] || mkdir $DEST

get_db GeoIP.dat
get_db GeoIPv6.dat
get_db GeoLite2-Country.mmdb
#get_db GeoLite2-City.mmdb
get_db GeoLite2-ASN.mmdb

# copy to chroots
if [ -d /chroot ]; then
	for chrdir in /chroot/*; do
		copy_chr ${DEST} GeoIP.dat ${chrdir}
		copy_chr ${DEST} GeoIPv6.dat ${chrdir}
		copy_chr ${DEST} GeoLite2-Country.mmdb ${chrdir}
	done
fi
