#!/usr/bin/env bash
set -euo pipefail


echo "> start db server"
DBAAS_ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)
cd "${DBAAS_ROOT}"

SUDO_DOCKER=${SUDO_DOCKER:-""}
go=("go")
if [[ -n $SUDO_DOCKER ]] ; then
  sudo ls >/dev/null
  go=(sudo "$(which go)")
fi

GOPRIVATE="github.com/tidbcloud" "${go[@]}" build -o dbserver test/dbserver/main.go
./dbserver &
sleep 3

function shutdown() {
  kills=(kill)
  if [[ -n $SUDO_DOCKER ]] ; then
    kills=(sudo kill)
  fi
  "${kills[@]}" "$(jobs -p)"; ./hack/stop-db-server.sh
}

declare MYSQL_TEST_CONFIG
curl_opts=(-4 --retry 3 --retry-connrefused --retry-delay 3 --fail)
url=http://127.0.0.1:11234/borrow
MYSQL_TEST_CONFIG=$(curl "${curl_opts[@]}" "$url" || curl "$url")
export MYSQL_TEST_CONFIG=$MYSQL_TEST_CONFIG
echo "MYSQL_TEST_CONFIG=$MYSQL_TEST_CONFIG"

if [[ -n "$*" ]] ; then
  trap 'shutdown' EXIT
  "$@"
else
  echo "> start db server done"
fi

rm -f dbserver
