#!/bin/sh

. /lib/functions.sh

uci_load nginx
# this is to make sure to not mess up existing config
if uci_get nginx _sulu_s >/dev/null 2>&1; then
  exit 0
fi

update_default_nginx_listner() {

  if [ ! -f /etc/config/nginx ]; then
    return
  fi

  if ! uci_get nginx _lan >/dev/null 2>&1; then
    return
  fi

  if ! opkg list-installed |grep -q "luci "; then
    echo "Luci not installed, removing luci config"
    uci_remove nginx _lan
    uci_remove nginx _redirect2ssl
  else
    uci_remove nginx _lan listen
    uci_add_list nginx _lan listen "8443 ssl default_server"
    uci_add_list nginx _lan listen "[::]:8443 ssl default_server"

    if ! uci_get nginx _redirect2ssl >/dev/null 2>&1; then
        return
    fi

    uci_remove nginx _redirect2ssl listen
    uci_add_list nginx _redirect2ssl listen "8080"
    uci_add_list nginx _redirect2ssl listen "[::]:8080"
    uci_set nginx _redirect2ssl return '302 https://$host:8443$request_uri'
  fi
}

move_sulu_to_443_and_80() {
  uci_load userinterface
  if [ ! -f /etc/config/userinterface ]; then
    return
  fi

  set_port() {
    local protocol
    config_get protocol "$1" protocol
    if [ "$protocol" == "HTTPS" ]; then
      uci_set userinterface "$1" port "443"
    elif [ "$protocol" == "HTTP" ]; then
      uci_set userinterface "$1" port "80"
    fi
  }
  config_foreach set_port http_access
}

update_default_nginx_listner
move_sulu_to_443_and_80
