#!/bin/bash

export ENVIRONMENT=${ENVIRONMENT:="development"}
export SERVER_WIDE_MODULES="base,web,$SERVER_WIDE_MODULES"
export PROXY_MODE=${PROXY_MODE:=False}
export LOG_LEVEL=${LOG_LEVEL:="info"}
export MAX_CRON_THREADS=${MAX_CRON_THREADS:=2}
export LIST_DB=${LIST_DB:=True}
export ADMIN_PASSWD=${ADMIN_PASSWD:="odoo"}
export DBFILTER=${DBFILTER:=""}
export WORKERS=${WORKERS:=0}
export LIMIT_REQUEST=${LIMIT_REQUEST:=8192}
export LIMIT_TIME_CPU=${LIMIT_TIME_CPU:=60}
export LIMIT_TIME_REAL=${LIMIT_TIME_REAL:=120}
export MODULE_AUTO_INSTALL_DISABLED=${MODULE_AUTO_INSTALL_DISABLED:=""}
export SMTP_SERVER=${SMTP_SERVER:=""}
export SMTP_PORT=${SMTP_PORT:=0}
export SMTP_SSL=${SMTP_SSL:=""}
export SMTP_USER=${SMTP_USER:=""}
export SMTP_PASSWORD=${SMTP_PASSWORD:=""}
export EMAIL_FROM=${EMAIL_FROM:=""}

# Deode SSH private key
if [ -n "$GIT_SSH_PRIVATE_KEY" ]; then
    GIT_SSH_PRIVATE_KEY=$(echo -e "$GIT_SSH_PRIVATE_KEY" | base64 -w0)
fi
export GIT_SSH_PUBLIC_KEY_PARAM=$([ -n "$GIT_SSH_PUBLIC_KEY" ] && echo "git.ssh.public.key = \"$GIT_SSH_PUBLIC_KEY\"")
export GIT_SSH_PRIVATE_KEY_PARAM=$([ -n "$GIT_SSH_PRIVATE_KEY" ] && echo "git.ssh.private.key = \"$GIT_SSH_PRIVATE_KEY\"")

TEMPLATE_FILE="${ODOO_ENVSUBST_TEMPLATE_FILE:-/etc/odoo/odoo.conf.template}"
OUTPUT_FILE="${ODOO_ENVSUBST_OUTPUT_FILE:-/etc/odoo/odoo.conf}"
FILTER="${ODOO_ENVSUBST_FILTER:-}"

source set-addons-path

DEFINED_ENVS=$(printf '${%s} ' $(awk "END { for (name in ENVIRON) { print ( name ~ /${FILTER}/ ) ? name : \"\" } }" < /dev/null ))

if [[ -f "$TEMPLATE_FILE" ]]; then
    log-entrypoint "Run envsubst on $TEMPLATE_FILE and output: $OUTPUT_FILE"
    envsubst "$DEFINED_ENVS" < "$TEMPLATE_FILE" > "$OUTPUT_FILE"
fi
