-
Notifications
You must be signed in to change notification settings - Fork 55
/
sdm-readparams
executable file
·40 lines (39 loc) · 1.28 KB
/
sdm-readparams
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/bin/bash
#
# This file is sourced by other sdm scripts
#
function readparams() {
#
# Restores the global variables from /etc/sdm/cparams
#
local rpifun value cf="$SDMPT/etc/sdm/cparams" snolq
if [ -f $cf ]
then
while IFS=":" read -r rpifun value
do
if [[ ! $rpifun =~ ^\ *# && -n $rpifun ]] # skip comment and malformed lines
then
# Cant' use stripquotes, it's in sdm-cparse, and can't source it w/o processing this first ($sdmdir)
#value="${value%%\#*}" # Del EOL comments
value="${value%"${value##*[^[:blank:]]}"}" # Del trailing spaces/tabs
snolq="${value#\"}" # Get string without open quote
if [ "$snolq" != "$value" ] # if lq was there, then update string and also del close quote
then
value=$snolq
value="${value%\"}"
fi
snolq="${value#\'}" # Get string without open quote
if [ "$snolq" != "$value" ] # Ditto double quote comment
then
value=$snolq
value="${value%\'}"
fi
printf -v "$rpifun" "%s" "$value" #eval "${rpifun}=\"$value\""
fi
done < $cf
fi
[ -f $SDMPT/$sdmdir/sdm-cparse ] && source $SDMPT/$sdmdir/sdm-cparse || echo "? Internal error: File '$SDMPT/$sdmdir/sdm-cparse' not found in readparams"
return
}
# Call the function after we've been sourced
readparams