1#!/bin/sh 2# Copyright (c) 2013 The Linux Foundation. All rights reserved. 3# Copyright (C) 2011 OpenWrt.org 4 5UCIDEF_LEDS_CHANGED=0 6 7ucidef_set_led_netdev() { 8 local cfg="led_$1" 9 local name=$2 10 local sysfs=$3 11 local dev=$4 12 local mode=$5 13 14 uci -q get system.$cfg && return 0 15 16 uci batch <<EOF 17set system.$cfg='led' 18set system.$cfg.name='$name' 19set system.$cfg.sysfs='$sysfs' 20set system.$cfg.trigger='netdev' 21set system.$cfg.dev='$dev' 22set system.$cfg.mode='${mode:-link tx rx}' 23EOF 24 UCIDEF_LEDS_CHANGED=1 25} 26 27ucidef_set_led_usbdev() { 28 local cfg="led_$1" 29 local name=$2 30 local sysfs=$3 31 local dev=$4 32 33 uci -q get system.$cfg && return 0 34 35 uci batch <<EOF 36set system.$cfg='led' 37set system.$cfg.name='$name' 38set system.$cfg.sysfs='$sysfs' 39set system.$cfg.trigger='usbdev' 40set system.$cfg.dev='$dev' 41set system.$cfg.interval='50' 42EOF 43 UCIDEF_LEDS_CHANGED=1 44} 45 46ucidef_set_led_wlan() { 47 local cfg="led_$1" 48 local name=$2 49 local sysfs=$3 50 local trigger=$4 51 52 uci -q get system.$cfg && return 0 53 54 uci batch <<EOF 55set system.$cfg='led' 56set system.$cfg.name='$name' 57set system.$cfg.sysfs='$sysfs' 58set system.$cfg.trigger='$trigger' 59EOF 60 UCIDEF_LEDS_CHANGED=1 61} 62 63ucidef_set_led_switch() { 64 local cfg="led_$1" 65 local name=$2 66 local sysfs=$3 67 local trigger=$4 68 local port_mask=$5 69 70 uci -q get system.$cfg && return 0 71 72 uci batch <<EOF 73set system.$cfg='led' 74set system.$cfg.name='$name' 75set system.$cfg.sysfs='$sysfs' 76set system.$cfg.trigger='$trigger' 77set system.$cfg.port_mask='$port_mask' 78EOF 79 UCIDEF_LEDS_CHANGED=1 80} 81 82ucidef_set_led_timer() { 83 local cfg="led_$1" 84 local name=$2 85 local sysfs=$3 86 local delayon=$4 87 local delayoff=$5 88 89 uci -q get system.$cfg && return 0 90 91 uci batch <<EOF 92set system.$cfg='led' 93set system.$cfg.name='$name' 94set system.$cfg.sysfs='$sysfs' 95set system.$cfg.trigger='timer' 96set system.$cfg.delayon='$delayon' 97set system.$cfg.delayoff='$delayoff' 98EOF 99 UCIDEF_LEDS_CHANGED=1 100} 101 102ucidef_set_led_default() { 103 local cfg="led_$1" 104 local name=$2 105 local sysfs=$3 106 local default=$4 107 108 uci -q get system.$cfg && return 0 109 110 uci batch <<EOF 111set system.$cfg='led' 112set system.$cfg.name='$name' 113set system.$cfg.sysfs='$sysfs' 114set system.$cfg.default='$default' 115EOF 116 UCIDEF_LEDS_CHANGED=1 117} 118 119ucidef_set_led_rssi() { 120 local cfg="led_$1" 121 local name=$2 122 local sysfs=$3 123 local iface=$4 124 local minq=$5 125 local maxq=$6 126 local offset=$7 127 local factor=$8 128 129 uci -q get system.$cfg && return 0 130 131 uci batch <<EOF 132set system.$cfg='led' 133set system.$cfg.name='$name' 134set system.$cfg.sysfs='$sysfs' 135set system.$cfg.trigger='rssi' 136set system.$cfg.iface='rssid_$iface' 137set system.$cfg.minq='$minq' 138set system.$cfg.maxq='$maxq' 139set system.$cfg.offset='$offset' 140set system.$cfg.factor='$factor' 141EOF 142 UCIDEF_LEDS_CHANGED=1 143} 144 145ucidef_set_rssimon() { 146 local dev="$1" 147 local refresh="$2" 148 local threshold="$3" 149 150 local cfg="rssid_$dev" 151 152 uci -q get system.$cfg && return 0 153 154 uci batch <<EOF 155set system.$cfg='rssid' 156set system.$cfg.dev='$dev' 157set system.$cfg.refresh='$refresh' 158set system.$cfg.threshold='$threshold' 159EOF 160 UCIDEF_LEDS_CHANGED=1 161} 162 163ucidef_commit_leds() 164{ 165 [ "$UCIDEF_LEDS_CHANGED" == "1" ] && uci commit system 166} 167 168ucidef_set_interface_loopback() { 169 uci batch <<EOF 170set network.loopback='interface' 171set network.loopback.ifname='lo' 172set network.loopback.proto='static' 173set network.loopback.ipaddr='127.0.0.1' 174set network.loopback.netmask='255.0.0.0' 175EOF 176} 177 178ucidef_set_interface_raw() { 179 local cfg=$1 180 local ifname=$2 181 182 uci batch <<EOF 183set network.$cfg='interface' 184set network.$cfg.ifname='$ifname' 185set network.$cfg.proto='none' 186EOF 187} 188 189ucidef_set_interface_lan() { 190 local ifname=$1 191 192 uci batch <<EOF 193set network.lan='interface' 194set network.lan.ifname='$ifname' 195set network.lan.type='bridge' 196set network.lan.proto='static' 197set network.lan.ipaddr='192.168.1.1' 198set network.lan.netmask='255.255.255.0' 199EOF 200} 201 202ucidef_set_interface_wan() { 203 local ifname=$1 204 205 uci batch <<EOF 206set network.wan='interface' 207set network.wan.ifname='$ifname' 208set network.wan.proto='dhcp' 209EOF 210} 211 212ucidef_set_interfaces_lan_wan() { 213 local lan_ifname=$1 214 local wan_ifname=$2 215 216 ucidef_set_interface_lan "$lan_ifname" 217 ucidef_set_interface_wan "$wan_ifname" 218} 219 220ucidef_set_interface_macaddr() { 221 local ifname=$1 222 local mac=$2 223 224 uci batch <<EOF 225set network.$ifname.macaddr='$mac' 226EOF 227} 228 229ucidef_add_switch() { 230 local name=$1 231 local reset=$2 232 local enable=$3 233 uci batch <<EOF 234add network switch 235set network.@switch[-1].name='$name' 236set network.@switch[-1].reset='$reset' 237set network.@switch[-1].enable_vlan='$enable' 238EOF 239} 240 241ucidef_add_switch_vlan() { 242 local device=$1 243 local vlan=$2 244 local ports=$3 245 uci batch <<EOF 246add network switch_vlan 247set network.@switch_vlan[-1].device='$device' 248set network.@switch_vlan[-1].vlan='$vlan' 249set network.@switch_vlan[-1].ports='$ports' 250EOF 251} 252 253ucidef_set_snd_ctrl() { 254 local card=$1 255 local name=$2 256 local value=$3 257 uci batch <<EOF 258add sound sound-control 259set sound.@sound-control[-1].card='$card' 260set sound.@sound-control[-1].name='$name' 261set sound.@sound-control[-1].value='$value' 262EOF 263} 264