#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Michel Roegl-Brunner (michelroegl-brunner)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE

color() {
  return
}
catch_errors() {
  set -Eeuo pipefail
  trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
}

# This function handles errors
error_handler() {
  local line_number="$1"
  local command="$2"
  SCRIPT_NAME=$(basename "$0")
  local error_message="$SCRIPT_NAME: Failure in line $line_number while executing command $command"
  echo -e "\n$error_message"
  exit 0
}
verb_ip6() {
  STD=""
  return
}

msg_info() {
  local msg="$1"
  echo -ne "${msg}\n"
}

msg_ok() {
  local msg="$1"
  echo -e "${msg}\n"
}

msg_error() {

  local msg="$1"
  echo -e "${msg}\n"
}

RETRY_NUM=10
RETRY_EVERY=3
i=$RETRY_NUM

setting_up_container() {
  while [ $i -gt 0 ]; do
    if [ "$(ip addr show | grep 'inet ' | grep -v '127.0.0.1' | awk '{print $2}' | cut -d'/' -f1)" != "" ]; then
      break
    fi
    echo 1>&2 -en "No Network! "
    sleep $RETRY_EVERY
    i=$((i - 1))
  done

  if [ "$(ip addr show | grep 'inet ' | grep -v '127.0.0.1' | awk '{print $2}' | cut -d'/' -f1)" = "" ]; then
    echo 1>&2 -e "\n No Network After $RETRY_NUM Tries"
    echo -e "Check Network Settings"
    exit 1
  fi
  msg_ok "Set up Container OS"
  msg_ok "Network Connected: $(hostname -i)"
}

network_check() {
  RESOLVEDIP=$(getent hosts github.com | awk '{ print $1 }')
  if [[ -z "$RESOLVEDIP" ]]; then msg_error "DNS Lookup Failure"; else msg_ok "DNS Resolved github.com to $RESOLVEDIP"; fi
  set -e
}

update_os() {
  msg_info "Updating Container OS"
  apk update
  apk upgrade
  msg_ok "Updated Container OS"
}

motd_ssh() {
  return
}

customize() {
  return
}