#!/usr/bin/with-contenv bashio
# shellcheck shell=bash
set -e
# ==============================================================================

# Wait for transmission to become available
bashio::net.wait_for 8080 localhost 900

bashio::log.info "Starting NGinx..."

# Check vpn is working
if [ -f /currentip ]; then
  nginx || nginx -s reload & \
  while true; do
    # Get vpn ip
    if ! bashio::config.true 'wireguard_enabled' && bashio::config.true 'openvpn_alt_mode'; then
      curl -s ipecho.net/plain > /vpnip
    else
      curl -s ipecho.net/plain --interface tun0 > /vpnip
    fi

    # Verify ip has changed
    if [[ "$(cat /vpnip)" = "$(cat /currentip)" ]]; then
      bashio::log.fatal "VPN is not properly configured. Your ip is exposed. Please fix this, or do not use the vpn alt mode"
      bashio::exit.nok
    fi

    # Get ip location
    COUNTRY=$(curl -s https://ipinfo.io/$(cat /vpnip) | grep country -i -m 1 | cut -d ':' -f 2 |xargs | awk 'gsub(/,$/,x)' || true)

    # Inform by message
    bashio::log.info "VPN is up and running with ip $(cat /vpnip), based in country : $COUNTRY"

    # Check every 15m
    sleep 15m

    true
  done
else
  nginx || nginx -s reload
fi
