#!/bin/bash

NOMECONTAINER="ssh-dw"

docker_repo="urbancompasspony/ssh-dw:latest"
imagem="dwservice"

SECRET0=$(cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 12)

CustmN2="local_ip"
CustmN3="password"
CustmN4=""
CustmN5=""
CustmN6=""
CustmN7=""
CustmN8=""
CustmN9=""
CustmN10=""

VALUE2="hostonly"
VALUE3="$SECRET0"
VALUE4=""
VALUE5=""
VALUE6=""
VALUE7=""
VALUE8=""
VALUE9=""
VALUE10=""

export NOMECONTAINER docker_repo imagem
export CustmN2 CustmN3 CustmN4 CustmN5 CustmN6 CustmN7 CustmN8 CustmN9 CustmN10
export VALUE2 VALUE3 VALUE4 VALUE5 VALUE6 VALUE7 VALUE8 VALUE9 VALUE10

source /root/.index.sh

if [ -f /tmp/common-functions.sh ]; then
  source /tmp/common-functions.sh
else
  echo "ERRO: common-functions.sh não encontrado!"
  exit 1
fi

function set_mkdir {
  sudo mkdir -p /srv/containers/"$NOMECONTAINER"
  sudo chmod -R 777 /srv/containers/"$NOMECONTAINER"
}

function docker_create {
  local ip_regex="^([0-9]{1,3}\.){3}[0-9]{1,3}$"

  # Se NAO for numerico, execute como host!
  if [[ ! "$VALUE2" =~ $ip_regex ]]; then

    docker run -d --privileged --name="$NOMECONTAINER" --hostname="$NOMECONTAINER" \
    --network host --add-host=host.docker.internal:host-gateway \
    --no-healthcheck --restart=unless-stopped -v /etc/localtime:/etc/localtime:ro \
    --log-driver json-file --log-opt max-size=10m --log-opt max-file=3 \
    -e PUID=0 -e PGID=0 \
    -e UBUNTU_PASSWORD="$VALUE3" \
    -v /srv/containers/"$NOMECONTAINER"/data:/usr/share \
    -v /:/host \
    "$docker_repo"

    return
  fi

  echo "Este sistema não admite executar com IP pré estabelecido."
  echo "Execute diretamente como hostonly!"
  echo "Saindo..."
  sleep 5
  exit 1
}

function docker_extras {
  # Aguardar o container estar rodando
  echo "Aguardando container inicializar..."
  sleep 3
  echo "✅ Container inicializado com sucesso!"
}

execute_main

exit 0
