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.
44 lines
2.9 KiB
44 lines
2.9 KiB
##################################################################################
|
|
# Bash library for reading configuration file #
|
|
# #
|
|
# Example use: #
|
|
# #
|
|
# #!/usr/bin/env bash #
|
|
# source config.shlib; # load the config library functions #
|
|
# echo "$(config_get myvar)"; # will be found in user-cfg #
|
|
# printf -- "%s\n" "$(config_get myvar $config_file_name)"; # safer way of #
|
|
# # echoing! #
|
|
# myvar="$(config_get myvar)"; # how to just read a value without echoing #
|
|
# echo "$(config_get othervar)"; # will fall back to defaults #
|
|
# echo "$(config_get bleh)"; # "__UNDEFINED__" since it isn't set anywhere #
|
|
# #
|
|
# (C)2021 M.T. Konstapel https://meezenest.nl/mees #
|
|
# #
|
|
# This file is part of PE1RXF-APRS-server. #
|
|
# #
|
|
# PE1RXF-APRS-server is free software: you can redistribute it and/or modify #
|
|
# it under the terms of the GNU General Public License as published by #
|
|
# the Free Software Foundation, either version 3 of the License, or #
|
|
# (at your option) any later version. #
|
|
# #
|
|
# PE1RXF-APRS-server is distributed in the hope that it will be useful, #
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
|
|
# GNU General Public License for more details. #
|
|
# #
|
|
# You should have received a copy of the GNU General Public License #
|
|
# along with PE1RXF-APRS-server If not, see <https://www.gnu.org/licenses/>. #
|
|
# #
|
|
##################################################################################
|
|
|
|
config_read_file() {
|
|
(grep -E "^${2}=" -m 1 "${1}" 2>/dev/null || echo "VAR=__UNDEFINED__") | head -n 1 | cut -d '=' -f 2-;
|
|
}
|
|
|
|
config_get() {
|
|
val="$(config_read_file "${2}" "${1}")";
|
|
if [ "${val}" = "__UNDEFINED__" ]; then
|
|
val="$(config_read_file pe1rxf-aprs-server.cfg.defaults "${1}")";
|
|
fi
|
|
printf -- "%s" "${val}";
|
|
}
|
|
|