#!/usr/bin/env bash
# Создайте скрытый сервис для контейнера узла и убедитесь, что веб-контейнер
# получает скрытую переменную среды службы при первой установке.

HIDDEN_SERVICE_FILE="${TOR_DATA_DIR}/app-${APP_ID}-node/hostname"

if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then
	exit
fi

# Сначала запустите веб-контейнер, чтобы обновить секрет.
"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach web

# Запустите контейнер узла, чтобы можно было создать скрытый сервис.
"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach node

echo "App: ${APP_ID} - Generating Tor Hidden Service for node container..."
"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" up --detach tor

for attempt in $(seq 1 100); do
	if [[ -f "${HIDDEN_SERVICE_FILE}" ]]; then
		echo "App: ${APP_ID} - Hidden service file created successfully!"
		# перезапустите веб-контейнер, чтобы получить новую скрытую службу env var
		echo "App: ${APP_ID} - Restarting web container..."
		"${DFWEBOS_ROOT}/scripts/app" compose "${APP_ID}" restart web
		break
	fi
	sleep 0.1
done

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