#!/bin/bash

NOMECONTAINER="xpra-virt-manager"

docker_repo="urbancompasspony/xpra-virt-manager:latest"
imagem="xpra"

CustmN2="local_ip"
CustmN3="servidor_dns"
CustmN4="password"
CustmN5="disp.res."
CustmN6="port"
CustmN7=""
CustmN8=""
CustmN9=""
CustmN10=""

VALUE2="0.0.0.0"
VALUE3="8.8.4.4"
VALUE4="p4ssw0rd"
VALUE5="1920x1080"
VALUE6="9876"
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"/home/user
:; }

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 --privileged -d --name="$NOMECONTAINER" --hostname="$NOMECONTAINER" \
    --network host \
    --device /dev/kvm:/dev/kvm \
    --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 DARK_MODE=true \
    -e HOSTS="['qemu:///system']" \
    -e passw0rd="$VALUE4" \
    -e resolution="$VALUE5" \
    -e PORTS="$VALUE6" \
    -v /srv/containers/$NOMECONTAINER/home:/home \
    -v /var/lib/libvirt/images:/var/lib/libvirt/images \
    -v /var/run/libvirt/libvirt-sock:/var/run/libvirt/libvirt-sock \
    -v /dev/disk/by-id:/dev/disk/by-id \
    -v "/srv/containers/$NOMECONTAINER/config:/config" \
    -v "/srv/containers/$NOMECONTAINER/data:/data" \
    "$docker_repo" &

    return
  fi

  docker run --privileged -d --name="$NOMECONTAINER" --hostname="$NOMECONTAINER" \
  --network macvlan --ip="$VALUE2" --dns="$VALUE3" \
  --device /dev/kvm:/dev/kvm \
  --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 DARK_MODE=true \
  -e HOSTS="['qemu:///system']" \
  -e passw0rd="$VALUE4" \
  -e resolution="$VALUE5" \
  -e PORTS="$VALUE6" \
  -v /srv/containers/"$NOMECONTAINER"/home:/home \
  -v /var/lib/libvirt/images:/var/lib/libvirt/images \
  -v /var/run/libvirt/libvirt-sock:/var/run/libvirt/libvirt-sock \
  -v /dev/disk/by-id:/dev/disk/by-id \
  -v "/srv/containers/$NOMECONTAINER/config:/config" \
  -v "/srv/containers/$NOMECONTAINER/data:/data" \
  "$docker_repo" &
}

function docker_extras {
  sudo chmod 777 /var/run/libvirt/libvirt-sock
  sudo chmod 777 -R /srv/containers/"$NOMECONTAINER"/home/user
  sleep 3; docker restart "$NOMECONTAINER"
:; }

execute_main

exit 0
