#!/usr/bin/env bash
set -o errexit
set -o pipefail

main() {
  if [[ "${DEBUG}" ]]; then
    set -o xtrace
  fi
  _get_lat_lon
}

_get_lat_lon() {
  : "${IP_LOOKUP_URL:=https://ifconfig.co/ip}"
  : "${GEOIP_LOOKUP_HOST:=http://api.geoiplookup.net}"

  local ipaddr
  ipaddr="$(curl -fsSL "${IP_LOOKUP_URL}")"

  local geoip_xml
  geoip_xml="$(curl -fsSL "${GEOIP_LOOKUP_HOST}?query=${ipaddr}")"

  _extract_lat_long "${geoip_xml}"
}

_extract_lat_long() {
  python <<EOPYTHON
from __future__ import print_function
import sys
from xml.dom.minidom import parseString as parse_xml_string
dom = parse_xml_string("""${1}""")
lat = dom.getElementsByTagName('latitude')[0].firstChild.data
lon = dom.getElementsByTagName('longitude')[0].firstChild.data
print('{}:{}'.format(lat, lon))
EOPYTHON
}

main "${@}"
