You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
1.3 KiB
Bash

4 years ago
#!/bin/sh
. /usr/share/libubox/jshn.sh
createRadioInformation() {
local radio=$1
local interface=$2
local channel
local frequency
local ssid
local config_data
config_data="$(ubus call uci get {\"config\":\"wireless\",\"section\":\"$radio\"})"
#Device does not have the radio
if [ -z "$config_data" ]; then
return
fi
#Gather information from iwinfo and uci
json_load "$(ubus call iwinfo info {\"device\":\"$interface\"})"
json_get_var channel "channel"
json_get_var frequency "frequency"
json_get_var ssid "ssid"
json_load "$config_data"
json_get_values config "values"
#We will add the config via sed to the json object. There it needs the name config.
#Furthermore, delete the first { and the last } to have the right number of brackets
config=$(json_dump | sed 's/values/config/g' | sed 's/^{//' | sed '$s/}//' )
#Add information to result
json_init
json_load "$result"
json_add_object $radio
json_add_int frequency $frequency
json_add_int channel $channel
json_add_string ssid $ssid
#Now the Object has an empty config. Create the json string and then replace the empty config string with the filled one
json_add_object config
result=$(echo $(json_dump) | sed "s/\"config\":\ *{\ *}/${config}/g" )
}
result="{}"
createRadioInformation "wifi0" "ath0"
createRadioInformation "wifi1" "ath1"
echo "$result"