#!/command/with-contenv bashio
set -x

#test=($(bashio::config 'test'))
#test+=('one', 'two')
#bashio::config::update 'test' "${test[@]}"
#bashio::addon.option 'test' $test[@]

#TEST
#bashio::addon.option 'usbdevices' { 'name': 'one', 'use': false}
#my_array=($(bashio::config 'my_array'))
#my_array+=('one')  # Add a new item to the array
#my_array+=({ 'name': 'one', 'use': false})  # Add a new item to the array
#bashio::config::update 'my_array' "${my_array[@]}"

#list1=$(/usr/bin/vhclient -t LIST)
#list2=$(eval 'grep "--" <<< "$list1"')
#bashio::log.info "${list1}"
#bashio::log.info "${list2}"

#mapfile -t devices < <(/usr/bin/vhclient -t LIST)
mapfile -t devices < <(/usr/bin/vh_list_devices)
for device in "${devices[@]}"; do
  #options=$(bashio::addon.options)
  options=$(bashio::api.supervisor GET "/addons/self/options/config")
  gurka=$(echo $options | jq --arg device "$device" '.usbdevices[] | select(.device == ($device))')
  bashio::log.info "Options: ${gurka}"
  
  if [[ ! " ${options}.usbdevices[*] " =~ [[:space:]]${device}[[:space:]] ]]; then

    bashio::log.info "Adding to config: ${device}"

    options_updated=$(echo $options | jq --arg device "$device" '.usbdevices |= . + [{ device: ($device), use: false }]')
    bashio::log.info "Options updated: ${options_updated}"
    #payload=$(bashio::var.json options "^${new_options}")
    #options_payload='{"options": ${options_updated}}'
    options_payload=$(echo $options_updated | jq -r '. = { options: . }')
    bashio::log.info "Payload: ${options_payload}"
    bashio::api.supervisor POST "/addons/self/options" "${options_payload}"

  fi
done



#options=$(bashio::addon.options)
#new_options=$(echo $options | jq .usbdevices += [{ device: 'ONE', use: false }])
#payload=$(bashio::var.json options "^${new_options}")
#bashio::api.supervisor POST "/addons/self/options" "${payload}"
curl -sH "Authorization: Bearer $SUPERVISOR_TOKEN" http://supervisor/addons/self/info | jq .data.options
