#!/bin/bash

source /usr/local/etc/library.sh

# wait until user decrypts the instance first
while :; do
  needs_decrypt || break
  sleep 1
done

# wicd service finishes before completing DHCP
while :; do
  local_ip="$(get_ip)"
  pub_ip="$(curl -m4 icanhazip.com 2>/dev/null)"

  [[ "$pub_ip"   != "" ]] && ncc config:system:set trusted_domains 11 --value="$pub_ip"
  [[ "$local_ip" != "" ]] && break

  sleep 3
done

ncc config:system:set trusted_domains 1  --value="${local_ip}"
ncc config:system:set trusted_domains 14 --value="$(hostname -f)"

# we might need to retry if redis is not ready
while :; do
  nc_domain="$(ncc config:system:get overwrite.cli.url)" || {
    sleep 3
    continue
  }
  # Fix the situation where junk was introduced in the config by mistake
  # because Redis was not yet ready to be used even if it was up
  [[ "${nc_domain}" =~ "RedisException" ]] && nc_domain="$(hostname)"
  set-nc-domain "${nc_domain}" >> /var/log/ncp.log
  break
done

