#!/usr/bin/sh -e
#
# Copyright Red Hat, Inc.
#
# SPDX-License-Identifier: GPL-2.0-or-later
#

. /usr/share/pki/scripts/config

# Allow the owner of the container (who might not be in the root group)
# to manage the config and log files.
umask 000

echo "################################################################################"

if [ -z "$(ls -A /conf 2> /dev/null)" ]
then
    echo "INFO: Installing default config files"
    cp -r /var/lib/pki/pki-tomcat/conf.default/* /conf
fi

mkdir -p /conf/acme

if [ "$UID" = "0" ]
then
    chown -Rf pkiuser:root /conf
    chown -Rf pkiuser:root /logs
fi

find /conf -type f -exec chmod +rw -- {} +
find /conf -type d -exec chmod +rwx -- {} +
find /logs -type f -exec chmod +rw -- {} +
find /logs -type d -exec chmod +rwx -- {} +

echo "################################################################################"

# import metadata configuration if available
if [ -d /metadata ] && [ "$(ls /metadata)" ]
then
    echo "INFO: Importing metadata configuration"

    # empty current metadata configuration
    > /conf/acme/metadata.conf

    # import metadata configuration parameters
    for filename in /metadata/*
    do
        [ -e "$filename" ] || break
        name=$(basename $filename)
        value=$(cat $filename)
        echo "$name=$value" >> /conf/acme/metadata.conf
    done
else
    echo "INFO: Using default metadata configuration"
fi

echo "################################################################################"

# import database configuration if available
if [ -d /database ] && [ "$(ls /database)" ]
then
    echo "INFO: Importing database configuration"

    # empty current database configuration
    > /conf/acme/database.conf

    # import database configuration parameters
    for filename in /database/*
    do
        [ -e "$filename" ] || break
        name=$(basename $filename)
        value=$(cat $filename)
        echo "$name=$value" >> /conf/acme/database.conf
    done
else
    echo "INFO: Using default database configuration"
fi

echo "################################################################################"

# import issuer configuration if available
if [ -d /issuer ] && [ "$(ls /issuer)" ]
then
    echo "INFO: Importing issuer configuration"

    # empty current issuer configuration
    > /conf/acme/issuer.conf

    # import issuer configuration parameters
    for filename in /issuer/*
    do
        [ -e "$filename" ] || break
        name=$(basename $filename)
        value=$(cat $filename)
        echo "$name=$value" >> /conf/acme/issuer.conf
    done
else
    echo "INFO: Using default issuer configuration"
fi

echo "################################################################################"

# import realm configuration if available
if [ -d /realm ] && [ "$(ls /realm)" ]
then
    echo "INFO: Importing realm configuration"

    # empty current realm configuration
    > /conf/acme/realm.conf

    # import realm configuration parameters
    for filename in /realm/*
    do
        [ -e "$filename" ] || break
        name=$(basename $filename)
        value=$(cat $filename)
        echo "$name=$value" >> /conf/acme/realm.conf
    done
else
    echo "INFO: Using default realm configuration"
fi

/usr/share/pki/server/bin/pki-server-run
