#!/bin/bash

########################################
# setup

KAZ_ROOT=$(cd "$(dirname $0)/../.."; pwd)
. "${KAZ_ROOT}/bin/.commonFunctions.sh"
setKazVars

#TMPL=html/index.tmpl.html
#CONF=html/index.html
TEST_TMPL="${DOCK_VOL}/web_html/_data/status/allServices.tmpl.html"
TEST_CONF="${DOCK_VOL}/web_html/_data/status/allServices.html"

declare -A siteNames=( [prod1]="Rennes" [prod2]="Nantes A"  [prod3]="Nantes B" )
declare -A siteSSH=( [prod1]="" [prod2]="ssh -p 2201 root@prod2.kaz.bzh"  [prod3]="ssh -p 2201 root@kazoulet.kaz.bzh" )
siteKeys=$(echo "${!siteNames[@]}"|tr ' ' '\n'|sort|tr '\n' ' ')

declare -a availableServices
. "${DOCKERS_ENV}"
# XXX A reprendre de ce qui est attendu par container.sh
availableServices=(
    www
    ${calcHost}
    # ${castopodHost} : need orga
    ${cloudHost}
    ${dateHost}
    ${dokuwikiHost}
    ${fileHost}
    ${gitHost}
    # ${gravHost}
    ${imapsyncHost}
    # ${ldapHost}
    ${ldapUIHost}
    ${matterHost}
    ${mobilizonHost}
    ${padHost}
    # paheko : need orga
    ${sympaHost}
    ${vigiloHost}
    ${vaultwardenHost}
    ${webmailHost}
    # wordpress : need orga
)

echo -e "create status/allServices.html"

mkdir -p "$(dirname ${TEST_TMPL})"

########################################
# commun

echo -e "${BLUE}${BOLD}    * Base${NC}"
cat > "${TEST_TMPL}" <<EOF
<!DOCTYPE html>
<html lang="">
  <head>
    <meta charset="utf-8">
    <title>KAZ : test des services</title>
    <style>
      iframe { width: 450px; height: 300px; }
      div { display: inline-block; }
      p { display: block; margin: 2 0 0 0; }
    </style>
  </head>
  <!--noframes-->
  <body>

<H1>Commun</H1>
EOF

for service in ${availableServices[@]} ; do
    echo "    <div><p><a href=\"__HTTP_PROTO__://${service}.__DOMAIN__\">${service}</a></p><iframe src=\"__HTTP_PROTO__://${service}.__DOMAIN__\"></iframe></div>" >> "${TEST_TMPL}"
done

for service in prod1-office prod2-office kazoulet-office; do
    echo "    <div><p><a href=\"__HTTP_PROTO__://${service}.__DOMAIN__\">${service}</a></p><iframe src=\"__HTTP_PROTO__://${service}.__DOMAIN__\"></iframe></div>" >> "${TEST_TMPL}"
done

echo "    <br/>" >> "${TEST_TMPL}"

########################################
# All sites

for siteKey in ${siteKeys}; do
    echo -e "${BLUE}${BOLD}    * Orgas ${siteNames[$siteKey]}${NC}"
    declare -a availableOrga
    availableOrga=( $(${siteSSH[$siteKey]} cat "${KAZ_CONF_DIR}/container-orga.list" | sed -e "s/\(.*\)[ \t]*#.*$/\1/" -e "s/^[ \t]*\(.*\)$/\1/" -e "/^$/d") )

    echo "<H1>Le(s) ${#availableOrga[@]} orga(s) de ${siteNames[$siteKey]} : </H1>" >> "${TEST_TMPL}"
    for orga in ${availableOrga[@]} ; do
	orgaName=${orga%-orga}

	echo "  <b>${orgaName}</b>"
	services=$(${siteSSH[$siteKey]} "${KAZ_COMP_DIR}/${orga}/orga-gen.sh" -l | sed -e "s/collabora/office/")
	for service in ${services}; do
 	    echo "  <div><p><a href=\"__HTTP_PROTO__://${orgaName}-${service}.__DOMAIN__\">${orgaName}-${service}</a></p></div>"
	done
 	echo "  <br/>"
    done >> "${TEST_TMPL}"
done

########################################
# foreign domains

echo -e "${BLUE}${BOLD}    * Extern${NC}"
echo "<H1>Les redirections</H1>" >> "${TEST_TMPL}"
for siteKey in ${siteKeys}; do
    echo -e "${BLUE}${BOLD}      * Orgas ${siteNames[$siteKey]}${NC}"
    
    echo "<H2>${siteNames[$siteKey]}</H2>" >> "${TEST_TMPL}"
    for extrenal in $( ${siteSSH[$siteKey]} "${KAZ_BIN_DIR}/foreign-domain.sh" -l | sort -u) ; do
	echo "    <div><p><a href=\"__HTTP_PROTO__://${extrenal}\">${extrenal}</a></p></div>"
    done >> "${TEST_TMPL}"    
done
echo "    <br/><br/><br/></html>" >> "${TEST_TMPL}"

########################################
#"${APPLY_TMPL}" "${TMPL}" "${CONF}"
"${APPLY_TMPL}" "${TEST_TMPL}" "${TEST_CONF}"