base-files: config_generate: regroup led generator code
[openwrt/openwrt.git] / package / base-files / files / bin / config_generate
index 78315ff9f9870f83284b2076228cd92a33dca8a8..a0ff53a72c5ca04dab23711981186124ba3e7ed1 100755 (executable)
@@ -267,42 +267,88 @@ generate_switch() {
        json_select ..
 }
 
+generate_rssimon() {
+       local key="$1"
+       local cfg="rssid_$key"
+       local refresh threshold
+
+       json_select rssimon
+       json_select "$key"
+       json_get_vars refresh threshold
+       json_select ..
+       json_select ..
+
+       uci -q batch <<-EOF
+               delete system.$cfg
+               set system.$cfg='rssid'
+               set system.$cfg.dev='$key'
+               set system.$cfg.refresh='$refresh'
+               set system.$cfg.threshold='$threshold'
+       EOF
+}
+
 generate_led() {
        local key="$1"
        local cfg="led_$key"
 
        json_select led
        json_select "$key"
-       json_get_vars name sysfs type trigger device interface default port_mask
-       json_select ..
-       json_select ..
+       json_get_vars name sysfs type trigger default
 
        uci -q batch <<-EOF
                delete system.$cfg
                set system.$cfg='led'
                set system.$cfg.name='$name'
                set system.$cfg.sysfs='$sysfs'
-               set system.$cfg.dev='$device'
                set system.$cfg.trigger='$trigger'
-               set system.$cfg.port_mask='$port_mask'
                set system.$cfg.default='$default'
        EOF
 
        case "$type" in
                netdev)
+                       local device
+                       json_get_vars device
                        uci -q batch <<-EOF
                                set system.$cfg.trigger='netdev'
                                set system.$cfg.mode='link tx rx'
+                               set system.$cfg.dev='$device'
                        EOF
                ;;
 
                usb)
+                       local device
+                       json_get_vars device
                        uci -q batch <<-EOF
                                set system.$cfg.trigger='usbdev'
                                set system.$cfg.interval='50'
+                               set system.$cfg.dev='$device'
+                       EOF
+               ;;
+
+               rssi)
+                       local iface minq maxq offset factor
+                       json_get_vars iface minq maxq offset factor
+                       uci -q batch <<-EOF
+                               set system.$cfg.trigger='rssi'
+                               set system.$cfg.iface='rssid_$iface'
+                               set system.$cfg.minq='$minq'
+                               set system.$cfg.maxq='$maxq'
+                               set system.$cfg.offset='$offset'
+                               set system.$cfg.factor='$factor'
+                       EOF
+               ;;
+
+               switch)
+                       local port_mask
+                       json_get_vars port_mask
+                       uci -q batch <<-EOF
+                               set system.$cfg.port_mask='$port_mask'
                        EOF
                ;;
        esac
+
+       json_select ..
+       json_select ..
 }
 
 json_init
@@ -316,6 +362,9 @@ for key in $keys; do generate_network $key; done
 json_get_keys keys switch
 for key in $keys; do generate_switch $key; done
 
+json_get_keys keys rssimon
+for key in $keys; do generate_rssimon $key; done
+
 json_get_keys keys led
 for key in $keys; do generate_led $key; done