Files
home-assistant-addons/vhclient/rootfs/usr/bin/vh_edit_config
Hans Karlinius b33d25d016 test
2024-12-01 06:50:36 +01:00

30 lines
897 B
Plaintext
Executable File

#!/command/with-contenv bashio
# Changed code from https://gist.github.com/thomedes/6201620#file-ini-sed
file="/config/vhclient.ini"
touch $file
awkconfig_update_value(){
local section="$1"
local key="$2"
local value="$3"
awk -v RS="(^|\n)[:blank:]*\\\\[" -v setFound=0 -v sec="$section"\
-v kv="$key=$value" -v secPat="$section" -v subPat="$key"\
'$1~"^[[:blank:]\[]*" secPat "[:blank:]*\]"{ \
s = sub("[:blank:]*" subPat "[:blank:]*=[^#^;^\n]*", kv);\
$0 = $0 ((0 == s)? "\n" kv "\n" : ""); # adding kv to $0;\
secFound=1;\
}\
$1~"^[^;^#^\n^=]*\]"{\
$0 = "[" $0; # adding the record separator "[" back in\
}\
NF{sub(/\n$/, ""); print $0}\
END{ if (secFound == 0){\
print "[" sec "]";\
print kv;\
}\
}' $file > /tmp/vhclient_config_tmp
}
awkconfig_update_value $1 $2 $3
mv /tmp/vhclient_config_tmp $file