mirror of https://github.com/sipwise/ngcpcfg.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
3.0 KiB
100 lines
3.0 KiB
#!/bin/bash
|
|
# Filename: /usr/share/ngcp-ngcpcfg/functions/init
|
|
# Purpose: helper functions to init ngcpcfg global variables
|
|
################################################################################
|
|
|
|
## important variables we depend on to operate successfully {{{
|
|
# support test suite which requires system independent configuration
|
|
if [ -r "${NGCPCFG:-}" ] ; then
|
|
log_debug "sourcing configuration file ${NGCPCFG:-}"
|
|
# shellcheck disable=SC1090
|
|
. "${NGCPCFG:-}"
|
|
else
|
|
if [ -r /etc/ngcp-ngcpcfg/ngcpcfg.cfg ] ; then
|
|
# shellcheck disable=SC1091
|
|
. /etc/ngcp-ngcpcfg/ngcpcfg.cfg
|
|
log_debug "sourced configuration file /etc/ngcp-ngcpcfg/ngcpcfg.cfg"
|
|
|
|
if [ -d /etc/ngcp-ngcpcfg/ngcpcfg.d ] ; then
|
|
for file in /etc/ngcp-ngcpcfg/ngcpcfg.d/*.cfg ; do
|
|
if [ -r "${file}" ]; then
|
|
# shellcheck disable=SC1090
|
|
. "${file}"
|
|
log_debug "sourced configuration file '${file}'"
|
|
fi
|
|
done
|
|
fi
|
|
elif [ -r /etc/ngcp-config-crypted.tgz.gpg ] ; then
|
|
log_error "Configuration pool locked. Please contact your distributor. Exiting."
|
|
exit 1
|
|
else
|
|
log_error "Could not read configuration file /etc/ngcp-ngcpcfg/ngcpcfg.cfg. Exiting."
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
if ! [ -r "${NGCPCTL_CONFIG}" ] ; then
|
|
log_error "Configuration file ${NGCPCTL_CONFIG} does not exist (unconfigured?) - exiting."
|
|
exit 1
|
|
fi
|
|
|
|
if ! [ -r "${CONSTANTS_CONFIG}" ] ; then
|
|
log_error "Constants file ${CONSTANTS_CONFIG} does not exist (unconfigured?) - exiting."
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "${NETWORK_CONFIG:-}" ] ; then
|
|
log_warn "NETWORK_CONFIG is not configured in ${NGCPCTL_CONFIG} - continuing anyway."
|
|
elif ! [ -r "${NETWORK_CONFIG}" ] ; then
|
|
log_error "Constants file ${NETWORK_CONFIG} does not exist (unconfigured?) - exiting."
|
|
exit 1
|
|
fi
|
|
|
|
if ! [ -d "${TEMPLATE_POOL_BASE}" ] ; then
|
|
log_error "No template directory (${TEMPLATE_POOL_BASE}) found - exiting."
|
|
exit 1
|
|
fi
|
|
|
|
if [ -d "${EXTRA_CONFIG_DIR:-}" ] && ls "${EXTRA_CONFIG_DIR}"/*.yml &>/dev/null ; then
|
|
log_debug "EXTRA_CONFIG_DIR is configured and *.yml files are present, setting EXTRA_CONFIG_FILES"
|
|
EXTRA_CONFIG_FILES=("${EXTRA_CONFIG_DIR}"/*.yml)
|
|
fi
|
|
|
|
## }}}
|
|
|
|
## environment variables {{{
|
|
export PN="ngcpcfg"
|
|
export HNAME
|
|
HNAME="$(ngcp-hostname)"
|
|
export NNAME
|
|
NNAME="$(ngcp-nodename)"
|
|
|
|
# avoid warnings by perl script complaining about locales
|
|
export LANG=C
|
|
export LC_ALL=C
|
|
|
|
# make sure it's available in all helper scripts
|
|
[ -n "${DEBUG:-}" ] && export DEBUG
|
|
[ -n "${NO_DB_SYNC:-}" ] && export NO_DB_SYNC
|
|
|
|
: "${CONSTANTS_CONFIG_USER:=root}"
|
|
: "${CONSTANTS_CONFIG_GROUP:=root}"
|
|
: "${CONSTANTS_CONFIG_CHMOD:=0600}"
|
|
: "${CONFIG_USER:=root}"
|
|
: "${CONFIG_GROUP:=_ngcp-admin}"
|
|
: "${CONFIG_CHMOD:=0660}"
|
|
: "${NETWORK_CONFIG_USER:=root}"
|
|
: "${NETWORK_CONFIG_GROUP:=_ngcp-admin}"
|
|
: "${NETWORK_CONFIG_CHMOD:=0660}"
|
|
|
|
# export for access via build_config etc
|
|
export CONFIG_POOL
|
|
export HOST_CONFIG
|
|
export LOCAL_CONFIG
|
|
export NGCPCTL_CONFIG
|
|
export CONSTANTS_CONFIG
|
|
export NETWORK_CONFIG
|
|
export EXTRA_CONFIG_DIR
|
|
export EXTRA_CONFIG_FILES
|
|
## }}}
|