#!/usr/bin/env bash
set -e

function sec_init
{

cat <<EOF | isql-fb security.db
create or alter user SYSDBA password '$_SYSDBA_PWD';
commit;
quit;
EOF

if [ -f /run/secrets/FB3_USER_NAME ] && [ -f /run/secrets/FB3_USER_PWD ]; then
    echo "Setting up Firebird user $(cat /run/secrets/FB3_USER_NAME) with 'grant create database'"
    cat <<EOF | isql-fb security.db
    create or alter user $(cat /run/secrets/FB3_USER_NAME) password '$(cat /run/secrets/FB3_USER_PWD)';
    grant create database to user $(cat /run/secrets/FB3_USER_NAME);
    commit;
    quit;
EOF
fi

}

if [ -f /run/secrets/FB3_SYSDBA_PWD ]; then
    _SYSDBA_PWD=$(cat /run/secrets/FB3_SYSDBA_PWD)
else
    _SYSDBA_PWD=$RANDOM$RANDOM
    echo "Setting SYSDBA's random password: "$_SYSDBA_PWD
fi

sed -i "s/^UserManager/#Tmp UserManager/" /etc/firebird/firebird.conf
echo "UserManager = Legacy_UserManager" >>  /etc/firebird/firebird.conf
sec_init
sed -i "s/UserManager = Legacy_UserManager//" /etc/firebird/firebird.conf
sed -i "s/#Tmp UserManager/UserManager/" /etc/firebird/firebird.conf
sec_init

rm -f /var/log/firebird/firebird.log
mkfifo /var/log/firebird/firebird.log
tail -f /var/log/firebird/firebird.log &

exec "$@"