################################################################################## # 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 . # # # ################################################################################## 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}"; }