#!/usr/bin/env bash

set -o errexit   # Exit on most errors (see the manual)
set -o errtrace  # Make sure any error trap is inherited
set -o nounset   # Disallow expansion of unset variables
set -o pipefail  # Use last non-zero exit code in a pipeline

TAGS="environment:${ENVIRONMENT},project:${PROJECT},service:${ECS_SERVICE},cluster:${ECS_CLUSTER}"

DB_RW_CONN_STR="Server=${MYSQL_DB_RW_HOST};Database=${MYSQL_MAIN_DB_NAME};Uid=${MYSQL_DB_USER};Pwd=${MYSQL_DB_PASS};CharSet=utf8mb4;Convert Zero Datetime=True;UseCompression=true;allowLoadLocalInfile=true;default command timeout=200000;Connection Timeout=200000;"
DB_RO_CONN_STR="Server=${MYSQL_DB_RO_HOST};Database=${MYSQL_MAIN_DB_NAME};Uid=${MYSQL_DB_USER};Pwd=${MYSQL_DB_PASS};CharSet=utf8mb4;Convert Zero Datetime=True;UseCompression=true;default command timeout=200000;Connection Timeout=200000;"
DB_ERR_CONN_STR="Server=${MYSQL_DB_RW_HOST};Database=${MYSQL_ERR_DB_NAME};Uid=${MYSQL_DB_USER};Pwd=${MYSQL_DB_PASS};CharSet=utf8;UseCompression=true;"
IS_LOCAL=${IS_LOCAL:-'false'}

mv /app/appsettings.json /app/appsettings.json.bak && jq -r ".appSettings.IsLocalEnv=${IS_LOCAL} | .connectionStrings.db=\"${DB_RW_CONN_STR}\" | .connectionStrings.dbReadOnly=\"${DB_RO_CONN_STR}\" | .connectionStrings.dbErrorLogging=\"${DB_ERR_CONN_STR}\"" /app/appsettings.json.bak > /app/appsettings.json

exec timeout 1d dogwrap \
  -n "${DD_SERVICE}" \
  -k "${DD_API_KEY}" \
  -m all \
  -p "normal" \
  --tags="${TAGS}" \
  --send_metric \
   /usr/bin/dotnet Sony.Filtr.ScheduledTask.dll "$@"