aboutsummaryrefslogtreecommitdiff
path: root/net/GeoIP/files/geoipupdate.sh.in
blob: b80f292527ccbf7a8c5c75d780343fcb88608383 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/sh

set -eu
echo Fetching GeoIP.dat and GeoIPv6.dat...

# arguments:
# $1 URL
# $2 output file name
_fetch() {
    url="$1"
    out="$2"
    TEMPFILE="$(mktemp "%%DATADIR%%"/GeoIP.dat-XXXXXX)"
    trap 'rc=$? ; set +e ; rm -f "'"$TEMPFILE"'" ; exit $rc' 0
    if fetch -o - "$url" | gunzip >> "$TEMPFILE" ; then
	chmod 444 "$TEMPFILE"
	if ! mv -f "$TEMPFILE" "%%DATADIR%%"/"$2" ; then
	    echo "Unable to replace %%DATADIR%%/$2"
	    return 2
	fi
    else
	echo "$2 download failed"
	return 1
    fi
    rm -f "$TEMPFILE"
    trap - 0
    return 0
}

_fetch "http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz" GeoIP.dat

_fetch "http://geolite.maxmind.com/download/geoip/database/GeoIPv6.dat.gz" GeoIPv6.dat