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