Ensure that DATADIR exists before attempting to fetch the data files

into it. Also, make the script more robust and ask fewer questions in
adverse conditions.

PORTREVISION bump.

PR:		192597
Submitted by:	mandree
This commit is contained in:
Adam Weinberger 2014-08-11 20:16:28 +00:00
parent 38ba0624f5
commit 38ec20b411
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=364652
2 changed files with 26 additions and 26 deletions

View file

@ -3,7 +3,7 @@
PORTNAME= GeoIP
PORTVERSION= 1.6.0
PORTREVISION= 1
PORTREVISION= 2
CATEGORIES= net geography
MASTER_SITES= http://geolite.maxmind.com/download/geoip/api/c/

View file

@ -1,31 +1,31 @@
#!/bin/sh
set -eu
echo Fetching GeoIP.dat and GeoIPv6.dat...
TEMPFILE=`mktemp %%DATADIR%%/GeoIP.dat-XXXXXX`
if fetch -o - http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz | gunzip >> $TEMPFILE ; then
chmod 644 $TEMPFILE
if ! mv $TEMPFILE %%DATADIR%%/GeoIP.dat ; then
rm $TEMPFILE
echo Unable to overwrite %%DATADIR%%/GeoIP.dat
exit 2
# 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
else
rm $TEMPFILE
echo GeoIP.dat download failed
exit 1
fi
rm -f "$TEMPFILE"
trap - 0
return 0
}
TEMPFILE=`mktemp %%DATADIR%%/GeoIPv6.dat-XXXXXX`
if fetch -o - http://geolite.maxmind.com/download/geoip/database/GeoIPv6.dat.gz | gunzip >> $TEMPFILE ; then
chmod 644 $TEMPFILE
if ! mv $TEMPFILE %%DATADIR%%/GeoIPv6.dat ; then
rm $TEMPFILE
echo Unable to overwrite %%DATADIR%%/GeoIPv6.dat
exit 2
fi
else
rm $TEMPFILE
echo GeoIPv6.dat download failed
exit 1
fi
_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