#!/bin/bash
set -eu
echo "$0 $@ [$$] START" >&2


if [ ${1:-} = --help ]; then
	echo Info: запуск и остановка сервисов
	echo Usage: /opt/bin/services
	echo Example: /opt/bin/services
fi


declare INSTALLATION_TYPE=box
if [[ -f /opt/CONFIG ]]; then
	source /opt/CONFIG
fi


do_start(){
	echo "### Run starting services"
	/etc/init.d/redis-server start || true
	/etc/init.d/postgresql start || true
	if [[ $INSTALLATION_TYPE = box ]]; then
		/etc/init.d/nginx start || true
		/etc/init.d/converter start || true
	elif [[ $INSTALLATION_TYPE = cloud ]]; then
		# Хак, Надо раскурить systemd,
		#  но при старте vm он сам не стартует.
		#  Есть гипотеза, что из-за этого: systemctl disable postgresql@13-main
		systemctl start "postgresql@13-main"
	fi
	/etc/init.d/wsgidav start || true
	/etc/init.d/crm start || true
	/etc/init.d/crm-celery start || true
	/etc/init.d/cron start || true
	return 0
}


do_restart(){
	# do_stop AND do_start лучшее???
	echo "### Run restarting services"
	# Скрипт исправлен, раскомментировать если будут появляться лишние процессы.
	# /etc/init.d/redis-server stop || true
	# killall redis-server 2>/dev/null || true
	# /etc/init.d/redis-server start || true
	/etc/init.d/redis-server restart || true
	/etc/init.d/postgresql restart || true
	if [[ $INSTALLATION_TYPE = box ]]; then
		/etc/init.d/nginx restart || true
		/etc/init.d/converter restart || true
	fi
	/etc/init.d/wsgidav restart || true
	/etc/init.d/crm restart || true
	/etc/init.d/crm-celery restart || true
	/etc/init.d/cron restart || true
	return 0
}


do_stop(){
	echo "### Run stopping services..."
	/etc/init.d/cron stop || true
	/etc/init.d/wsgidav stop || true
	/etc/init.d/crm-celery stop || true
	/etc/init.d/crm stop || true

	if [[ $INSTALLATION_TYPE = box ]]; then
		/etc/init.d/nginx stop || true
		/etc/init.d/converter stop || true
	fi

	/etc/init.d/postgresql stop || true
	/etc/init.d/redis-server stop || true
	# Бажный скрипт в комплекте.
	# Скрипт исправлен, раскомментировать если будут появляться лишние процессы.
	# killall redis-server 2>/dev/null || true
	sleep 3
	echo "### Stopping done. Run pstree -upal (must be only wrapper)"
	pstree -upal
	return 0
}



do_$1
echo "$0 $@ [$$] SUCCESS" >&2
exit 0
