#!/bin/bash
# Download MaxMind GeoLite2-City database
# Requires: MAXMIND_LICENSE_KEY env var (free account at https://www.maxmind.com/en/geolite2/signup)
# Usage: MAXMIND_LICENSE_KEY=your_key ./scripts/download_geoip_db.sh

set -euo pipefail

LICENSE_KEY="${MAXMIND_LICENSE_KEY:?MAXMIND_LICENSE_KEY env var required}"
EDITION_ID="GeoLite2-City"
OUTPUT_DIR="./geoip"
OUTPUT_FILE="$OUTPUT_DIR/GeoLite2-City.mmdb"

mkdir -p "$OUTPUT_DIR"

echo "Downloading GeoLite2-City database..."
curl -sL "https://download.maxmind.com/app/geoip_download?edition_id=${EDITION_ID}&license_key=${LICENSE_KEY}&suffix=tar.gz" \
  -o /tmp/geoip.tar.gz

tar -xzf /tmp/geoip.tar.gz -C /tmp/ --strip-components=1 "${EDITION_ID}_*.mmdb" 2>/dev/null || \
  tar -xzf /tmp/geoip.tar.gz -C /tmp/ --wildcards "*.mmdb"

find /tmp -name "GeoLite2-City.mmdb" -exec mv {} "$OUTPUT_FILE" \;
rm -f /tmp/geoip.tar.gz

echo "GeoLite2-City database saved to: $OUTPUT_FILE"
echo "File size: $(du -h $OUTPUT_FILE | cut -f1)"
