#!/usr/bin/env bash
# run chemselect

POSTFIXSCRIPT=/etc/chemselect/hooks/postfix.sh
CONFIGDB=/etc/chemselect/config.json
CONFIGUI=/etc/chemselect/configUI.json
DBSERVER=$(jq -r '.Database.Server' $CONFIGDB)
DBNAME=$(jq -r '.Database.Name' $CONFIGDB)
DBUSER=$(jq -r '.Database.User' $CONFIGDB)
DBPW=$(jq -r '.Database.Password' $CONFIGDB)

####
# setup database
####
if [ "$DBSERVER" = "localhost" ]; then
    /etc/init.d/mariadb start
    (
        mariadb <<!
show databases
!
    ) | grep -q chemselect
    if [ $? -ne 0 ]; then
        mariadb <<!
create database if not exists $DBNAME ;
create user if not exists '$DBUSER'@'localhost' identified by '$DBPW' ;
create user if not exists '$DBUSER'@'%' identified by '$DBPW' ;
grant all privileges on $DBNAME.* to '$DBUSER'@'localhost' ;
grant all privileges on $DBNAME.* to '$DBUSER'@'%' ;
!
    else
        mariadb <<!
set password for '$DBUSER'@'localhost' = PASSWORD('$DBPW') ;
set password for '$DBUSER'@'%' = PASSWORD('$DBPW') ;
!
    fi
fi

rsyslogd 2> /dev/null
####
# setup mail system
####
if [ -r "$POSTFIXSCRIPT" ]; then  
    sh "$POSTFIXSCRIPT"
fi

####
# start chemselect processes
####
cd /usr/lib/chemselect
apachectl stop || true
./ChemSelectUI --instance csUI --configfile $CONFIGUI --nlog /etc/chemselect/nlog.config --urls "https://localhost:6503" &
./ChemSelectAPI --instance csAPI --configfile $CONFIGDB --nlog /etc/chemselect/nlogApi.config --urls "http://localhost:6500" &
apachectl start
wait
