#!/usr/bin/env bash set -e function log_to_dockerout { cd /var/log/firebird while true do for i in $(ls *.log) do if [ -z "$(pgrep -f ${i})" ] ; then echo Processing ${i} > /var/log/dockerout tail -f /var/log/firebird/$i 2> /dev/null | while read fread; do echo "[${i}]: ${fread}" >> /var/log/dockerout; :> /var/log/firebird/$i; done & fi done sleep 10 done } function sec_init { cat <<EOF | isql-fb security.db create or alter user SYSDBA password '$_SYSDBA_PWD' using plugin Srp; create or alter user SYSDBA password '$_SYSDBA_PWD' using plugin Legacy_UserManager; 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)' using plugin Srp; create or alter user $(cat /run/secrets/FB3_USER_NAME) password '$(cat /run/secrets/FB3_USER_PWD)' using plugin Legacy_UserManager; grant create database to user $(cat /run/secrets/FB3_USER_NAME); commit; quit; EOF fi } function checkbase_init { mktemp > /etc/firebird/check-database.conf rm -f $(cat /etc/firebird/check-database.conf) isql-fb << EOF CREATE DATABASE "$(cat /etc/firebird/check-database.conf)"; EOF } if [ ! -f /run/secrets/FB3_SYSDBA_PWD ]; then mkdir -p /run/secrets echo $RANDOM$RANDOM > /run/secrets/FB3_SYSDBA_PWD echo "Setting SYSDBA's random password: "$( cat /run/secrets/FB3_SYSDBA_PWD ) fi _SYSDBA_PWD=$(cat /run/secrets/FB3_SYSDBA_PWD) sec_init checkbase_init mkfifo /var/log/dockerout tail -f /var/log/dockerout & log_to_dockerout & exec "$@"