92 lines
2.7 KiB
Bash
Executable File
92 lines
2.7 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# 50_update_config
|
|
#
|
|
# Kopano now installs without any cfg files, so we just write custom values
|
|
# into their target cfg file.
|
|
#
|
|
|
|
#
|
|
# config
|
|
#
|
|
|
|
DOCKER_CONF_DIR1=${DOCKER_CONF_DIR1-/etc/kopano}
|
|
DOCKER_CONF_DIR2=${DOCKER_CONF_DIR2-/usr/share/z-push}
|
|
|
|
server_cfg_file=$DOCKER_CONF_DIR1/server.cfg
|
|
ldap_cfg_file=$DOCKER_CONF_DIR1/ldap.cfg
|
|
spooler_cfg_file=$DOCKER_CONF_DIR1/spooler.cfg
|
|
dagent_cfg_file=$DOCKER_CONF_DIR1/dagent.cfg
|
|
spamd_cfg_file=$DOCKER_CONF_DIR1/spamd.cfg
|
|
|
|
zpush_cfg_file=$DOCKER_CONF_DIR2/config.php
|
|
sqlstate_cfg_file=$DOCKER_CONF_DIR2/backend/sqlstatemachine/config.php
|
|
|
|
#
|
|
# define environment variables
|
|
#
|
|
|
|
server_env_vars="MYSQL_HOST MYSQL_PORT MYSQL_DATABASE MYSQL_USER MYSQL_PASSWORD DISABLED_FEATURES USER_PLUGIN LOG_LEVEL"
|
|
ldap_env_vars="LDAP_URI LDAP_HOST LDAP_PORT LDAP_PROTOCOL LDAP_SEARCH_BASE LDAP_USER_TYPE_ATTRIBUTE_VALUE LDAP_GROUP_TYPE_ATTRIBUTE_VALUE LDAP_USER_SEARCH_FILTER"
|
|
spooler_env_vars="SMTP_SERVER SMTP_PORT LOG_LEVEL"
|
|
dagent_env_vars="LMTP_LISTEN LOG_LEVEL"
|
|
spamd_env_vars="LOG_METHOD SPAM_DIR SPAM_DB HEADER_TAG LEARN_HAM HAM_DIR SA_GROUP"
|
|
|
|
zpush_env_vars="TIMEZONE USE_CUSTOM_REMOTE_IP_HEADER USE_FULLEMAIL_FOR_LOGIN STATE_MACHINE STATE_DIR LOGBACKEND LOGLEVEL LOGAUTHFAIL LOG_SYSLOG_PROGRAM LOG_SYSLOG_FACILITY SYNC_CONFLICT_DEFAULT PING_INTERVAL FILEAS_ORDER SYNC_MAX_ITEMS UNSET_UNDEFINED_PROPERTIES ALLOW_WEBSERVICE_USERS_ACCESS USE_PARTIAL_FOLDERSYNC"
|
|
sqlstate_env_vars="STATE_SQL_ENGINE STATE_SQL_SERVER STATE_SQL_PORT STATE_SQL_DATABASE STATE_SQL_USER STATE_SQL_PASSWORD STATE_SQL_OPTIONS"
|
|
|
|
#
|
|
# Define helpers
|
|
#
|
|
|
|
inform() { printf "entrypoint[$$]: INFO:$(basename $0): $*.\n" ;}
|
|
|
|
_kopano_cfg_gen() {
|
|
# do not touch existing cfg files
|
|
local cfg_file=$1
|
|
shift
|
|
local env_vars=$@
|
|
if [ ! -e $cfg_file ]; then
|
|
for env_var in $env_vars; do
|
|
if [ -n "${!env_var}" ]; then
|
|
inform "Setting ${env_var,,} = ${!env_var} in $cfg_file"
|
|
echo ${env_var,,} = ${!env_var} >> $cfg_file
|
|
fi
|
|
done
|
|
fi
|
|
}
|
|
|
|
_php_cfg_gen() {
|
|
local cfg_file=$1
|
|
shift
|
|
local env_vars=$@
|
|
if [ -e $cfg_file ]; then
|
|
for env_var in $env_vars; do
|
|
if [ -n "${!env_var}" ]; then
|
|
inform "Setting ${env_var} = ${!env_var} in $cfg_file"
|
|
sed -ri "s/(\s*define).+${env_var}.+/\1\(\x27${env_var}\x27, \x27${!env_var}\x27\);/g" $cfg_file
|
|
fi
|
|
done
|
|
fi
|
|
}
|
|
|
|
kopano_cfg() {
|
|
_kopano_cfg_gen $server_cfg_file $server_env_vars
|
|
_kopano_cfg_gen $ldap_cfg_file $ldap_env_vars
|
|
_kopano_cfg_gen $spooler_cfg_file $spooler_env_vars
|
|
_kopano_cfg_gen $dagent_cfg_file $dagent_env_vars
|
|
_kopano_cfg_gen $spamd_cfg_file $spamd_env_vars
|
|
}
|
|
|
|
php_cfg() {
|
|
_php_cfg_gen $zpush_cfg_file $zpush_env_vars
|
|
_php_cfg_gen $sqlstate_cfg_file $sqlstate_env_vars
|
|
}
|
|
|
|
#
|
|
# run
|
|
#
|
|
|
|
kopano_cfg
|
|
php_cfg
|