diff options
Diffstat (limited to 'dev-libs/geoip/files/geoipupdate-r7.sh')
-rw-r--r-- | dev-libs/geoip/files/geoipupdate-r7.sh | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/dev-libs/geoip/files/geoipupdate-r7.sh b/dev-libs/geoip/files/geoipupdate-r7.sh new file mode 100644 index 000000000000..67d26bdc2ed8 --- /dev/null +++ b/dev-libs/geoip/files/geoipupdate-r7.sh @@ -0,0 +1,46 @@ +#!/bin/sh + +GEOIP_MIRROR="https://mailfud.org/geoip-legacy/" +GEOIPDIR=@PREFIX@/usr/share/GeoIP +TMPDIR= + +DATABASES=" + GeoIPv6 + GeoIPCity + GeoIPCityv6 + GeoIP + GeoIPASNum + GeoIPASNumv6 +" + +if [ "${1}" = -f ] || [ "${1}" = --force ]; then + force=true +fi + +if [ -d "${GEOIPDIR}" ]; then + cd $GEOIPDIR + if [ -n "${DATABASES}" ]; then + TMPDIR=$(mktemp -d geoipupdate.XXXXXXXXXX) + + echo "Updating GeoIP databases..." + + for db in $DATABASES; do + fname=$(basename $db) + + if [ -f "${GEOIPDIR}/${fname}.dat" ] || [ ${force} ]; then + wget --no-verbose -t 3 -T 60 \ + "${GEOIP_MIRROR}/${db}.dat.gz" \ + -O "${TMPDIR}/${fname}.dat.gz" + if [ $? -eq 0 ]; then + gunzip -fdc "${TMPDIR}/${fname}.dat.gz" > "${TMPDIR}/${fname}.dat" + mv "${TMPDIR}/${fname}.dat" "${GEOIPDIR}/${fname}.dat" + chmod 0644 "${GEOIPDIR}/${fname}.dat" + case ${fname} in + GeoLite*) ln -sf ${fname}.dat `echo ${fname} | sed 's/GeoLite/GeoIP/'`.dat ;; + esac + fi + fi + done + [ -d "${TMPDIR}" ] && rm -rf $TMPDIR + fi +fi |