#!/usr/bin/env bash

set -euo pipefail

APP_DATA_DIR="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/..)"

# Обновите Caddyfile, добавив новый порт tdexd.
CADDYFILE_PATH="${APP_DATA_DIR}/caddy-data/Caddyfile"
sed -i 's/tdex_tdexd_1:9090/tdex_tdexd_1:9092/g' "${CADDYFILE_PATH}"

# Убедитесь, что каталог Ocean-data существует для приложений, обновляющихся из старой версии, в которой его не было.
OCEAN_DATA_DIR="${APP_DATA_DIR}/ocean-data"

[ ! -d "${OCEAN_DATA_DIR}" ] && mkdir -p "${OCEAN_DATA_DIR}" && chown 1000:1000 "${OCEAN_DATA_DIR}"

# Убедитесь, что новый каталог tdexd существует для приложений, которые обновляются из старой структуры каталогов tdex-data.
TDEXD_DATA_DIR="${APP_DATA_DIR}/tdexd"

[ ! -d "${TDEXD_DATA_DIR}" ] && mkdir -p "${TDEXD_DATA_DIR}" && chown 1000:1000 "${TDEXD_DATA_DIR}"

# Отложите загрузку TDEX до тех пор, пока скрытая служба Tor не будет готова.
HIDDEN_SERVICE_FILE="${TOR_DATA_DIR}/app-${APP_ID}-daemon/hostname"
if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then
	exit
fi

"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach tor
"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach oceand
"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach tdexd

echo "App: ${APP_ID} - Generating Tor Hidden Service..."
for attempt in $(seq 1 100); do
	if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then
		echo "App: ${APP_ID} - Hidden service file created successfully!"
		break
	fi
	sleep 0.1
done

if [[ ! -f "${HIDDEN_SERVICE_FILE}" ]]; then
	echo "App: ${APP_ID} - Hidden service file wasn't created"
fi
