log/scripts: introduce proper log level fallback and env getter function (#2506)

This PR does two small things:

1. The log level, in case it is unset, will now be "calculated" from
   `/etc/dms-settings` and not always default to `info`. This way, we
   can ensure that more often than not, the log level the user chose
   when starting DMS is used everywhere.
2. I noticed that the way I obtained the log level could be used to
   obtain any env variable's log level. I therefore added a function to
   `utils.sh` in case we use it in the future.
This commit is contained in:
Georg Lauterbach 2022-04-05 17:10:01 +02:00 committed by GitHub
parent c7b16a599c
commit b1594a8b1c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 7 deletions

View File

@ -39,15 +39,23 @@ function _log
return 1
fi
local MESSAGE LEVEL_AS_INT
local MESSAGE LEVEL_AS_INT LOG_LEVEL_FALLBACK
MESSAGE="${LOG_RESET}["
case "${LOG_LEVEL:-}" in
( 'trace' ) LEVEL_AS_INT=5 ;;
( 'debug' ) LEVEL_AS_INT=4 ;;
( 'warn' ) LEVEL_AS_INT=2 ;;
( 'error' ) LEVEL_AS_INT=1 ;;
( * ) LEVEL_AS_INT=3 ;;
if [[ -e /etc/dms-settings ]]
then
LOG_LEVEL_FALLBACK=$(grep "^LOG_LEVEL=" /etc/dms-settings | cut -d '=' -f 2)
LOG_LEVEL_FALLBACK="${LOG_LEVEL_FALLBACK:1:-1}"
else
LOG_LEVEL_FALLBACK='info'
fi
case "${LOG_LEVEL:-${LOG_LEVEL_FALLBACK}}" in
( 'trace' ) LEVEL_AS_INT=5 ;;
( 'debug' ) LEVEL_AS_INT=4 ;;
( 'warn' ) LEVEL_AS_INT=2 ;;
( 'error' ) LEVEL_AS_INT=1 ;;
( * ) LEVEL_AS_INT=3 ;;
esac
case "${1}" in

View File

@ -11,3 +11,12 @@ function _is_comment
{
grep -q -E "^\s*$|^\s*#" <<< "${1}"
}
# Provide the name of an environment variable to this function
# and it will return its value stored in /etc/dms-settings
function _get_dms_env_value
{
local VALUE
VALUE=$(grep "^${1}=" /etc/dms-settings | cut -d '=' -f 2)
printf '%s' "${VALUE:1:-1}"
}