#!/bin/bash
# skip crab_syntax

# init-скрипт для контейнера Eva
# Example https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/docker/assets/wrapper
# Сергей предлагает использовать init https://github.com/krallin/tini
# Вроде как он встроен в докер и активируется по --init флагу

sigterm_handler() {
    echo "SIGTERM signal received, try to gracefully shutdown all services..."
    /opt/bin/services stop
    return 0
}
trap "sigterm_handler; exit" TERM


main(){
	# Настраиваем все
	# Запускаем сервисы
	# Прыгаем в wait

	echo "Запускаем сервисы"
	/opt/bin/services start
	echo "Применяем конфигурацию"
	/opt/bin/eva_configure

	echo "Запускаем event-loop"
	while true; do
		# TODO delme, при сборке используем wrapper_fake
		# if [ -f /eva_build ]; then
		#	# Идет сборка
		#	sleep 10
		#	continue
		# fi
		# if [ -f /need_update ]; then
		#	echo "Выставлен флаг обновления. Скачиваем обновление"
		#	/opt/eva_deploy/update_scripts/update_download.sh
		#	echo "Останавливаем все сервисы"
		#	/opt/bin/services stop
		#	echo "Запускаем обновление"
		#	/opt/eva_deploy/update_scripts/update_apply.sh
		#	# Ждем
		#	# wait
		#	echo "Снимаем флаг обновления"
		#	rm /need_update
		#	echo "Делаем re-exec себя"
		#	exec /wrapper
		# fi
		# TODO: watchdog
		sleep 1
	done

	echo "Run and sleep 1h"
	sleep 3600

	return 0
}


main
