#!/bin/bash

repo=stable
modules=(DT CC BS LM MSG)
artixpackages=(artix-cs-exchangers artixcs-rest-routing artixcs-rest artixcs-puppet-objects)
DT=(artixcs-datatransfer-schedule)
CC=(artixcs-controlcenter)
BS=(artixcs-accounting-bonuses artixcs-accounting-certificates artixcs-accounting-coupons)
LM=(artix-lm)
MSG=()

#Ключем -e <modele_name> исключаем установку модулей
while [ -n "$1" ]
do
case "$1" in
-e) modules=( "${modules[@]/$2}" )
shift ;;
-test) repo=testing ;;
--) shift
break ;;
*) ;;
esac
shift
done

for pckgs in ${modules[*]}
do
tmpArray=$(eval echo \${$pckgs[@]})
artixpackages=( "${artixpackages[@]}" "$tmpArray" )
done

#Добавление репозитория mongo
curl http://downloads.artix.su/static/downloads/docker/cs_env/add_mongo_rep.sh -o /tmp/add_mongo_rep.sh
chmod +x /tmp/add_mongo_rep.sh
/tmp/add_mongo_rep.sh
#Добавление репозитория КС4 с сервера artix
if [ "$repo" = "stable" ]; then
	curl http://downloads.artix.su/static/downloads/docker/cs_env/add_stable_rep.sh -o /tmp/add_stable_rep.sh
	chmod +x /tmp/add_stable_rep.sh
	/tmp/add_stable_rep.sh
else
	curl http://downloads.artix.su/static/downloads/docker/cs_env/add_testing_rep.sh -o /tmp/add_testing_rep.sh
	chmod +x /tmp/add_testing_rep.sh
	/tmp/add_testing_rep.sh
fi
if [[ " ${modules[@]} " =~ "LM" ]]; then
	#Добавление репозитория LM
	if [ "$repo" = "stable" ]; then
		wget -O - http://update.artix.su/artix.gpg.key |sudo apt-key add -
		echo 'deb [arch=amd64] http://update.artix.su/lm/ loyalty_testing loyalty' | sudo tee /etc/apt/sources.list.d/loyalty.list
	else
		wget -O - http://update.artix.su/artix.gpg.key |sudo apt-key add -
		echo 'deb [arch=amd64] http://192.169.0.14/repository/cs/ cashserver3_testing cashserver3' | sudo tee /etc/apt/sources.list.d/loyalty.list
	fi
fi
#Обновление списка доступных пакетов
sudo apt-get update

#Установка сертификата docker
curl http://downloads.artix.su/static/downloads/docker/cs_env/import_docker_cert.sh -o /tmp/import_docker_cert.sh
chmod +x /tmp/import_docker_cert.sh
/tmp/import_docker_cert.sh
#Установка lsyncd
curl http://downloads.artix.su/static/downloads/docker/cs_env/install_lsync.sh -o /tmp/install_lsync.sh
chmod +x /tmp/install_lsync.sh
/tmp/install_lsync.sh
#Установка docker
curl http://downloads.artix.su/static/downloads/docker/cs_env/install_docker.sh -o /tmp/install_docker.sh
chmod +x /tmp/install_docker.sh
/tmp/install_docker.sh
if [[ " ${modules[@]} " =~ "MSG" ]]; then
	#Установка сервиса рассылок
	curl -L http://downloads.artix.su/static/downloads/docker/delivery/install.sh -o /tmp/install_push.sh
	chmod u+x /tmp/install_push.sh
	/tmp/install_push.sh
fi

#Установка сервисов
sudo apt-get -y install ${artixpackages[@]}

if [[ " ${modules[@]} " =~ "CC" ]]; then
	#Установка и запуск docker образов (vnc, ssh, ticket)
	curl http://downloads.artix.su/static/downloads/docker/cs_env/start_env.sh -o /tmp/start_env.sh
	chmod +x /tmp/start_env.sh
	/tmp/start_env.sh
fi

if [[ " ${modules[@]} " =~ "CC" ]] || [[ " ${modules[@]} " =~ "LM" ]]; then
	# Если есть ЛМ или КЦ, то понадобится artixcs-sale-renderer
	curl http://downloads.artix.su/static/downloads/docker/cs_env/install_sale_renderer.sh -o /tmp/install_sale_renderer.sh
	chmod +x /tmp/install_sale_renderer.sh
	/tmp/install_sale_renderer.sh
fi

#Перезапуск сервисов, они не всегда запускаются после установки через скрипт
for pack in ${artixpackages[*]}
do
	# В скрипте с установкой docker-образов в скрипте start_env.sh уже происходит перезапуск некоторых сервисов
	if [[ " ${modules[@]} " =~ "CC" ]] && ( [ "$pack" = "artixcs-rest" ] || [ "$pack" = "artixcs-rest-routing" ] || [ "$pack" = "artixcs-controlcenter" ] ); then
	continue
	fi
	# Если ни LM, ни КЦ установлены не были, то пакета artixcs-sale-renderer нет
	if [ "$pack" = "artixcs-sale-renderer" ] && ! ( [[ " ${modules[@]} " =~ "CC" ]] || [[ " ${modules[@]} " =~ "LM" ]] ); then
	continue
	fi
sudo service $pack restart
done
