base-files: add support for heartbeat led trigger
[openwrt/openwrt.git] / package / base-files / files / lib / functions / uci-defaults.sh
old mode 100755 (executable)
new mode 100644 (file)
index 0d2dcd5..f96e645
@@ -1,5 +1,3 @@
-#!/bin/ash
-
 . /lib/functions.sh
 . /usr/share/libubox/jshn.sh
 
@@ -41,7 +39,13 @@ ucidef_set_interface() {
 
                [ -n "$opt" -a -n "$val" ] || break
 
-               json_add_string "$opt" "$val"
+               [ "$opt" = "device" -a "$val" != "${val/ //}" ] && {
+                       json_select_array "ports"
+                       for e in $val; do json_add_string "" "$e"; done
+                       json_close_array
+               } || {
+                       json_add_string "$opt" "$val"
+               }
        done
 
        if ! json_is_a protocol string; then
@@ -68,12 +72,18 @@ ucidef_set_model_name() {
        json_select ..
 }
 
+ucidef_set_compat_version() {
+       json_select_object system
+       json_add_string compat_version "${1:-1.0}"
+       json_select ..
+}
+
 ucidef_set_interface_lan() {
-       ucidef_set_interface "lan" ifname "$1" protocol "${2:-static}"
+       ucidef_set_interface "lan" device "$1" protocol "${2:-static}"
 }
 
 ucidef_set_interface_wan() {
-       ucidef_set_interface "wan" ifname "$1" protocol "${2:-dhcp}"
+       ucidef_set_interface "wan" device "$1" protocol "${2:-dhcp}"
 }
 
 ucidef_set_interfaces_lan_wan() {
@@ -84,6 +94,26 @@ ucidef_set_interfaces_lan_wan() {
        ucidef_set_interface_wan "$wan_if"
 }
 
+ucidef_set_bridge_device() {
+       json_select_object bridge
+       json_add_string name "${1:switch0}"
+       json_select ..
+}
+
+ucidef_set_bridge_mac() {
+       json_select_object bridge
+       json_add_string macaddr "${1}"
+       json_select ..
+}
+
+ucidef_set_network_device_mac() {
+       json_select_object "network-device"
+       json_select_object "${1}"
+       json_add_string macaddr "${2}"
+       json_select ..
+       json_select ..
+}
+
 _ucidef_add_switch_port() {
        # inherited: $num $device $need_tag $want_untag $role $index $prev_role
        # inherited: $n_cpu $n_ports $n_vlan $cpu0 $cpu1 $cpu2 $cpu3 $cpu4 $cpu5
@@ -171,14 +201,14 @@ _ucidef_finish_switch_roles() {
 
                        json_select_object "$role"
                                # attach previous interfaces (for multi-switch devices)
-                               json_get_var devices ifname
+                               json_get_var devices device
                                if ! list_contains devices "$device"; then
                                        devices="${devices:+$devices }$device"
                                fi
                        json_select ..
                json_select ..
 
-               ucidef_set_interface "$role" ifname "$devices"
+               ucidef_set_interface "$role" device "$devices"
        done
 }
 
@@ -388,6 +418,15 @@ ucidef_set_led_default() {
        json_select ..
 }
 
+ucidef_set_led_heartbeat() {
+       _ucidef_set_led_common "$1" "$2" "$3"
+
+       json_add_string trigger heartbeat
+       json_select ..
+
+       json_select ..
+}
+
 ucidef_set_led_gpio() {
        local gpio="$4"
        local inverted="$5"
@@ -404,7 +443,7 @@ ucidef_set_led_gpio() {
 }
 
 ucidef_set_led_ide() {
-       _ucidef_set_led_trigger "$1" "$2" "$3" ide-disk
+       _ucidef_set_led_trigger "$1" "$2" "$3" disk-activity
 }
 
 ucidef_set_led_netdev() {
@@ -573,7 +612,7 @@ ucidef_add_gpio_switch() {
        json_select_object gpioswitch
                json_select_object "$cfg"
                        json_add_string name "$name"
-                       json_add_int pin "$pin"
+                       json_add_string pin "$pin"
                        json_add_int default "$default"
                json_select ..
        json_select ..