This repository has been archived on 2025-11-19. You can view files and clone it, but cannot push or open issues or pull requests.
Skyfeed_archive/scripts/update_geoip.sh

37 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
: "${MAXMIND_LICENSE:?Set MAXMIND_LICENSE env var before running}"
DATA_DIR="${HOME}/.local/share/skyfeed"
TMP_DIR="$(mktemp -d)"
OUT_TAR="$TMP_DIR/geolite.tar.gz"
DEST_MMDB="$DATA_DIR/GeoLite2-City.mmdb"
mkdir -p "$DATA_DIR"
# MaxMind download URL pattern (uses license_key and suffix)
URL="https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-City&license_key=${MAXMIND_LICENSE}&suffix=tar.gz"
echo "[update_geoip] Downloading GeoLite2-City..."
curl -sSL -A "Skyfeed/1.0 (+https://leaktechnologies.dev)" -o "$OUT_TAR" "$URL"
echo "[update_geoip] Extracting .mmdb..."
# Tar contains folder like GeoLite2-City_YYYYMMDD/GeoLite2-City.mmdb
tar -xzf "$OUT_TAR" -C "$TMP_DIR"
MMDB_PATH=$(find "$TMP_DIR" -type f -name "GeoLite2-City.mmdb" | head -n1)
if [ -z "$MMDB_PATH" ]; then
echo "[update_geoip] ERROR: .mmdb not found in archive" >&2
exit 2
fi
# atomic replace
tmp_dest="${DEST_MMDB}.tmp"
cp "$MMDB_PATH" "$tmp_dest"
sync
mv -f "$tmp_dest" "$DEST_MMDB"
echo "[update_geoip] Installed $DEST_MMDB"
rm -rf "$TMP_DIR"