From 67e1c8701215724dcee9fabcbd7a397ea76e1a9d Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Fri, 11 Dec 2015 15:26:06 +0000 Subject: all: drop old uci-defaults.sh Replace former uci-defaults.sh implementation with the uci-defaults-new.sh one and update all users accordingly. Signed-off-by: Jo-Philipp Wich SVN-Revision: 47867 --- .../files/lib/functions/uci-defaults-new.sh | 576 --------------- .../base-files/files/lib/functions/uci-defaults.sh | 807 +++++++++++++-------- 2 files changed, 519 insertions(+), 864 deletions(-) delete mode 100755 package/base-files/files/lib/functions/uci-defaults-new.sh mode change 100644 => 100755 package/base-files/files/lib/functions/uci-defaults.sh (limited to 'package') diff --git a/package/base-files/files/lib/functions/uci-defaults-new.sh b/package/base-files/files/lib/functions/uci-defaults-new.sh deleted file mode 100755 index de3f180cbb..0000000000 --- a/package/base-files/files/lib/functions/uci-defaults-new.sh +++ /dev/null @@ -1,576 +0,0 @@ -#!/bin/ash - -CFG=/etc/board.json - -. /lib/functions.sh -. /usr/share/libubox/jshn.sh - -json_select_array() { - local _json_no_warning=1 - - json_select "$1" - [ $? = 0 ] && return - - json_add_array "$1" - json_close_array - - json_select "$1" -} - -json_select_object() { - local _json_no_warning=1 - - json_select "$1" - [ $? = 0 ] && return - - json_add_object "$1" - json_close_object - - json_select "$1" -} - -_ucidef_set_interface() { - local name="$1" - local iface="$2" - local proto="$3" - - json_select_object "$name" - json_add_string ifname "$iface" - - if ! json_is_a protocol string; then - case "$proto" in - static|dhcp|none|pppoe) : ;; - *) - case "$name" in - lan) proto="static" ;; - wan) proto="dhcp" ;; - *) proto="none" ;; - esac - ;; - esac - - json_add_string protocol "$proto" - fi - - json_select .. -} - -ucidef_set_board_id() { - json_select_object model - json_add_string id "$1" - json_select .. -} - -ucidef_set_model_name() { - json_select_object model - json_add_string name "$1" - json_select .. -} - -ucidef_set_interface_lan() { - json_select_object network - _ucidef_set_interface lan "$@" - json_select .. -} - -ucidef_set_interface_wan() { - json_select_object network - _ucidef_set_interface wan "$@" - json_select .. -} - -ucidef_set_interfaces_lan_wan() { - local lan_if="$1" - local wan_if="$2" - - json_select_object network - _ucidef_set_interface lan "$lan_if" - _ucidef_set_interface wan "$wan_if" - json_select .. -} - -_ucidef_add_switch_port() { - # inherited: $num $device $need_tag $role $index $prev_role - # inherited: $n_cpu $n_ports $n_vlan $cpu0 $cpu1 $cpu2 $cpu3 $cpu4 $cpu5 - - n_ports=$((n_ports + 1)) - - json_select_array ports - json_add_object - json_add_int num "$num" - [ -n "$device" ] && json_add_string device "$device" - [ -n "$need_tag" ] && json_add_boolean need_tag "$need_tag" - [ -n "$role" ] && json_add_string role "$role" - [ -n "$index" ] && json_add_int index "$index" - json_close_object - json_select .. - - # record pointer to cpu entry for lookup in _ucidef_finish_switch_roles() - [ -n "$device" ] && { - export "cpu$n_cpu=$n_ports" - n_cpu=$((n_cpu + 1)) - } - - # create/append object to role list - [ -n "$role" ] && { - json_select_array roles - - if [ "$role" != "$prev_role" ]; then - json_add_object - json_add_string role "$role" - json_add_string ports "$num" - json_close_object - - prev_role="$role" - n_vlan=$((n_vlan + 1)) - else - json_select_object "$n_vlan" - json_get_var port ports - json_add_string ports "$port $num" - json_select .. - fi - - json_select .. - } -} - -_ucidef_finish_switch_roles() { - # inherited: $name $n_cpu $n_vlan $cpu0 $cpu1 $cpu2 $cpu3 $cpu4 $cpu5 - local index role roles num device need_tag port ports - - json_select switch - json_select "$name" - json_get_keys roles roles - json_select .. - json_select .. - - for index in $roles; do - eval "port=\$cpu$(((index - 1) % n_cpu))" - - json_select switch - json_select "$name" - json_select ports - json_select "$port" - json_get_vars num device need_tag - json_select .. - json_select .. - - if [ $n_vlan -gt $n_cpu -o ${need_tag:-0} -eq 1 ]; then - num="${num}t" - device="${device}.${index}" - fi - - json_select roles - json_select "$index" - json_get_vars role ports - json_add_string ports "$ports $num" - json_add_string device "$device" - json_select .. - json_select .. - json_select .. - json_select .. - - json_select_object network - local devices - - json_select_object "$role" - # attach previous interfaces (for multi-switch devices) - json_get_var devices ifname - if ! list_contains devices "$device"; then - devices="${devices:+$devices }$device" - fi - json_select .. - - _ucidef_set_interface "$role" "$devices" - json_select .. - done -} - -ucidef_add_switch() { - local name="$1"; shift - local port num role device index need_tag prev_role - local cpu0 cpu1 cpu2 cpu3 cpu4 cpu5 - local n_cpu=0 n_vlan=0 n_ports=0 - - json_select_object switch - json_select_object "$name" - json_add_boolean enable 1 - json_add_boolean reset 1 - - for port in "$@"; do - case "$port" in - [0-9]*@*) - num="${port%%@*}" - device="${port##*@}" - need_tag=0 - [ "${num%t}" != "$num" ] && { - num="${num%t}" - need_tag=1 - } - ;; - [0-9]*:*:[0-9]*) - num="${port%%:*}" - index="${port##*:}" - role="${port#[0-9]*:}"; role="${role%:*}" - ;; - [0-9]*:*) - num="${port%%:*}" - role="${port##*:}" - ;; - esac - - if [ -n "$num" ] && [ -n "$device$role" ]; then - _ucidef_add_switch_port - fi - - unset num device role index need_tag - done - json_select .. - json_select .. - - _ucidef_finish_switch_roles -} - -ucidef_add_switch_attr() { - local name="$1" - local key="$2" - local val="$3" - - json_select_object switch - json_select_object "$name" - - case "$val" in - true|false) [ "$val" != "true" ]; json_add_boolean "$key" $? ;; - [0-9]) json_add_int "$key" "$val" ;; - *) json_add_string "$key" "$val" ;; - esac - - json_select .. - json_select .. -} - -ucidef_add_switch_port_attr() { - local name="$1" - local port="$2" - local key="$3" - local val="$4" - local ports i num - - json_select_object switch - json_select_object "$name" - - json_get_keys ports ports - json_select_array ports - - for i in $ports; do - json_select "$i" - json_get_var num num - - if [ -n "$num" ] && [ $num -eq $port ]; then - json_select_object attr - - case "$val" in - true|false) [ "$val" != "true" ]; json_add_boolean "$key" $? ;; - [0-9]) json_add_int "$key" "$val" ;; - *) json_add_string "$key" "$val" ;; - esac - - json_select .. - fi - - json_select .. - done - - json_select .. - json_select .. - json_select .. -} - -ucidef_set_interface_macaddr() { - local network="$1" - local macaddr="$2" - - json_select_object network - - json_select "$network" - [ $? -eq 0 ] || { - json_select .. - return - } - - json_add_string macaddr "$macaddr" - json_select .. - - json_select .. -} - -ucidef_add_atm_bridge() { - local vpi="$1" - local vci="$2" - local encaps="$3" - local payload="$4" - - json_select_object dsl - json_select_object atmbridge - json_add_int vpi "$vpi" - json_add_int vci "$vci" - json_add_string encaps "$encaps" - json_add_string payload "$payload" - json_select .. - json_select .. -} - -ucidef_add_adsl_modem() { - local annex="$1" - local firmware="$2" - - json_select_object dsl - json_select_object modem - json_add_string type "adsl" - json_add_string annex "$annex" - json_add_string firmware "$firmware" - json_select .. - json_select .. -} - -ucidef_add_vdsl_modem() { - local annex="$1" - local firmware="$2" - local tone="$3" - local xfer_mode="$4" - - json_select_object dsl - json_select_object modem - json_add_string type "vdsl" - json_add_string annex "$annex" - json_add_string firmware "$firmware" - json_add_string tone "$tone" - json_add_string xfer_mode "$xfer_mode" - json_select .. - json_select .. -} - -ucidef_set_led_netdev() { - local cfg="led_$1" - local name="$2" - local sysfs="$3" - local dev="$4" - - json_select_object led - - json_select_object "$1" - json_add_string name "$name" - json_add_string type netdev - json_add_string sysfs "$sysfs" - json_add_string device "$dev" - json_select .. - - json_select .. -} - -ucidef_set_led_usbdev() { - local cfg="led_$1" - local name="$2" - local sysfs="$3" - local dev="$4" - - json_select_object led - - json_select_object "$1" - json_add_string name "$name" - json_add_string type usb - json_add_string sysfs "$sysfs" - json_add_string device "$dev" - json_select .. - - json_select .. -} - -ucidef_set_led_wlan() { - local cfg="led_$1" - local name="$2" - local sysfs="$3" - local trigger="$4" - - json_select_object led - - json_select_object "$1" - json_add_string name "$name" - json_add_string type trigger - json_add_string sysfs "$sysfs" - json_add_string trigger "$trigger" - json_select .. - - json_select .. -} - -ucidef_set_led_switch() { - local cfg="led_$1" - local name="$2" - local sysfs="$3" - local trigger="$4" - local port_mask="$5" - - json_select_object led - - json_select_object "$1" - json_add_string name "$name" - json_add_string type switch - json_add_string sysfs "$sysfs" - json_add_string trigger "$trigger" - json_add_string port_mask "$port_mask" - json_select .. - - json_select .. -} - -ucidef_set_led_default() { - local cfg="led_$1" - local name="$2" - local sysfs="$3" - local default="$4" - - json_select_object led - - json_select_object "$1" - json_add_string name "$name" - json_add_string sysfs "$sysfs" - json_add_string default "$default" - json_select .. - - json_select .. -} - -ucidef_set_led_gpio() { - local cfg="led_$1" - local name="$2" - local sysfs="$3" - local gpio="$4" - local inverted="$5" - - json_select_object led - - json_select_object "$1" - json_add_string type gpio - json_add_string name "$name" - json_add_string sysfs "$sysfs" - json_add_string trigger "$trigger" - json_add_int gpio "$gpio" - json_add_boolean inverted "$inverted" - json_select .. - - json_select .. -} - -ucidef_set_led_ide() { - local cfg="led_$1" - local name="$2" - local sysfs="$3" - - json_select_object led - - json_select_object "$1" - json_add_string name "$name" - json_add_string sysfs "$sysfs" - json_add_string trigger ide-disk - json_select .. - - json_select .. -} - -ucidef_set_led_timer() { - local cfg="led_$1" - local name="$2" - local sysfs="$3" - local delayon="$4" - local delayoff="$5" - - json_select_object led - - json_select_object "$1" - json_add_string type timer - json_add_string name "$name" - json_add_string sysfs "$sysfs" - json_add_int delayon "$delayon" - json_add_int delayoff "$delayoff" - json_select .. - - json_select .. -} - -ucidef_set_led_rssi() { - local cfg="led_$1" - local name="$2" - local sysfs="$3" - local iface="$4" - local minq="$5" - local maxq="$6" - local offset="$7" - local factor="$8" - - json_select_object led - - json_select_object "$1" - json_add_string type rssi - json_add_string name "$name" - json_add_string iface "$iface" - json_add_string sysfs "$sysfs" - json_add_string minq "$minq" - json_add_string maxq "$maxq" - json_add_string offset "$offset" - json_add_string factor "$factor" - json_select .. - - json_select .. -} - -ucidef_set_rssimon() { - local dev="$1" - local refresh="$2" - local threshold="$3" - - json_select_object rssimon - - json_select_object "$dev" - [ -n "$refresh" ] && json_add_int refresh "$refresh" - [ -n "$threshold" ] && json_add_int threshold "$threshold" - json_select .. - - json_select .. - -} - -ucidef_add_gpio_switch() { - local cfg="$1" - local name="$2" - local pin="$3" - local default="${4:-0}" - - json_select_object gpioswitch - json_select_object "$cfg" - json_add_string name "$name" - json_add_int pin "$pin" - json_add_int default "$default" - json_select .. - json_select .. -} - -board_config_update() { - json_init - [ -f ${CFG} ] && json_load "$(cat ${CFG})" - - # auto-initialize model id and name if applicable - if ! json_is_a model object; then - json_select_object model - [ -f "/tmp/sysinfo/board_name" ] && \ - json_add_string id "$(cat /tmp/sysinfo/board_name)" - [ -f "/tmp/sysinfo/model" ] && \ - json_add_string name "$(cat /tmp/sysinfo/model)" - json_select .. - fi -} - -board_config_flush() { - json_dump -i > /tmp/.board.json - mv /tmp/.board.json ${CFG} -} diff --git a/package/base-files/files/lib/functions/uci-defaults.sh b/package/base-files/files/lib/functions/uci-defaults.sh old mode 100644 new mode 100755 index 2658d439ac..de3f180cbb --- a/package/base-files/files/lib/functions/uci-defaults.sh +++ b/package/base-files/files/lib/functions/uci-defaults.sh @@ -1,345 +1,576 @@ -#!/bin/sh -# Copyright (C) 2011 OpenWrt.org +#!/bin/ash -UCIDEF_LEDS_CHANGED=0 -UCIDEF_GPIO_SWITCHES_CHANGED=0 +CFG=/etc/board.json -ucidef_set_led_netdev() { - local cfg="led_$1" - local name=$2 - local sysfs=$3 - local dev=$4 - - uci -q get system.$cfg && return 0 - - uci batch < /tmp/.board.json + mv /tmp/.board.json ${CFG} +} -- cgit v1.2.3