#!/bin/bash

REPO_TYPE=stable
HOST=update.artix.su

MODE=(mongodb mysql pgsql)

if [ $# -gt 0 ]; then
    MODE=($@)
fi

curl https://${HOST}/static/cs/install_scripts/${REPO_TYPE}/cs_env/add_rep.sh -o /tmp/add_rep.sh
chmod +x /tmp/add_rep.sh
/tmp/add_rep.sh ${REPO_TYPE}
apt-get update
apt-get -y install artixcs-apt-config

if [[ " ${MODE[@]} " =~ "mongodb" ]]; then
    # Установка mongodb
    if  grep -qs 'avx\b' /proc/cpuinfo; then
      apt-get install -y mongodb-org mongodb-org-database mongodb-database-tools mongodb-org-database-tools-extra mongodb-org-tools mongodb-mongosh
    else
      apt-get install -y mongodb-org=4.4.30 mongodb-database-tools=100.10.0 mongodb-org-database-tools-extra=4.4.30 mongodb-org-tools=4.4.30 mongodb-mongosh=2.1.3
    fi

    # указываем mongodb прослушивать все интерфейсы 
    sed -i 's/bindIp: 127.0.0.1/bindIp: 0.0.0.0/g' /etc/mongod.conf
    if type systemctl > /dev/null 2>&1; then
    	systemctl enable mongod
    	systemctl restart mongod
	fi
fi


if [[ " ${MODE[@]} " =~ "mysql" ]]; then

    # считаем что нет необходимости задавать пароль для внутреннего пользователя mysql
    echo "===========debconf running=========================================="
    echo "artixcs-config acc/mysqlpassword password root" | debconf-set-selections
    # для mysql8
    echo "mysql-community-server mysql-community-server/root-pass password root" | debconf-set-selections
    echo "mysql-community-server mysql-community-server/re-root-pass password root" | debconf-set-selections 
    echo "mysql-community-server mysql-server/default-auth-override select Use Strong Password Encryption (RECOMMENDED)" | debconf-set-selections
    # для mysql5
    echo "mysql-server mysql-server/root_password password root" | debconf-set-selections
    echo "mysql-server mysql-server/root_password_again password root" | debconf-set-selections

    apt-get -y install artixcs-config

    # добавление artixcs_struct
    mysql -unetroot -pnetroot -e "

    create database if not exists artixcs_struct character set 'utf8mb4' collate 'utf8mb4_bin';

    use artixcs_struct;

    BEGIN;
    CREATE TABLE IF NOT EXISTS logging_event_ext
    (
	timestmp         BIGINT NOT NULL,
	formatted_message  TEXT NOT NULL,
	logger_name       VARCHAR(254) NOT NULL,
	level_string      VARCHAR(254) NOT NULL,
	thread_name       VARCHAR(254),
	reference_flag    SMALLINT,
	arg0              VARCHAR(254),
	arg1              VARCHAR(254),
	arg2              VARCHAR(254),
	arg3              VARCHAR(254),
	caller_filename   VARCHAR(254) NOT NULL,
	caller_class      VARCHAR(254) NOT NULL,
	caller_method     VARCHAR(254) NOT NULL,
	caller_line       CHAR(4) NOT NULL,
	CODE              VARCHAR(254),
	TYPE              VARCHAR(254),
	event_id          BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
	INDEX \`timeindex\` (\`timestmp\`), INDEX \`codeindex\` (\`code\`)
    );

    COMMIT;"
fi

if [[ " ${MODE[@]} " =~ "pgsql" ]]; then
    apt-get -y install artix-postgresql-config
fi
