#!/command/with-contenv bashio
# Changed code from https://gist.github.com/thomedes/6201620#file-ini-sed

file="/config/vhclient.ini"

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