Ignore commented lines when reding PRIVACYLEVEL from config file

Create dedicated getVal function in utils.sh as it might be useful somewhere else
Account for tailing comments and $key not being on the first line

Signed-off-by: Christian König <ckoenig@posteo.de>
This commit is contained in:
Christian König 2023-02-16 15:21:18 +01:00
parent 45cab12392
commit 4fd0f15d90
No known key found for this signature in database
3 changed files with 38 additions and 3 deletions

View file

@ -44,7 +44,7 @@ addOrEditKeyValPair() {
}
#######################
# Takes two arguments: file, and key.
# Takes two arguments: file and key.
# Adds a key to target file
#
# Example usage:
@ -64,7 +64,7 @@ addKey(){
}
#######################
# Takes two arguments: file, and key.
# Takes two arguments: file and key.
# Deletes a key or key/value pair from target file
#
# Example usage:
@ -76,6 +76,24 @@ removeKey() {
sed -i "/^${key}/d" "${file}"
}
#######################
# Takes two arguments: file and key.
# Returns the value of a given key from target file
# - ignores all commented lines
# - only returns the first value if multiple identical keys exist
#
#
# Example usage:
# getVal "/etc/pihole/setupVars.conf" "PIHOLE_DNS_1"
#######################
getVal() {
local file="${1}"
local key="${2}"
local value
value=$(sed -e '/^[[:blank:]]*#/d' "${file}" | grep "${key}" | awk -F "=" 'NR==1{printf$2}')
printf "%s" "$value"
}
#######################
# returns FTL's current telnet API port based on the setting in /etc/pihole-FTL.conf