base-files: add LED specific functions to /lib/functions/uci-defaults
[openwrt/svn-archive/archive.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_commit_leds()
98 {
99 [ "$UCIDEF_LEDS_CHANGED" == "1" ] && uci commit system
100 }
101
102 ucidef_set_interface_loopback() {
103 uci batch <<EOF
104 set network.loopback='interface'
105 set network.loopback.ifname='lo'
106 set network.loopback.proto='static'
107 set network.loopback.ipaddr='127.0.0.1'
108 set network.loopback.netmask='255.0.0.0'
109 EOF
110 }
111
112 ucidef_set_interface_raw() {
113 local cfg=$1
114 local ifname=$2
115
116 uci batch <<EOF
117 set network.$cfg='interface'
118 set network.$cfg.ifname='$ifname'
119 set network.$cfg.proto='none'
120 EOF
121 }
122
123 ucidef_set_interface_lan() {
124 local ifname=$1
125
126 uci batch <<EOF
127 set network.lan='interface'
128 set network.lan.ifname='$ifname'
129 set network.lan.type='bridge'
130 set network.lan.proto='static'
131 set network.lan.ipaddr='192.168.1.1'
132 set network.lan.netmask='255.255.255.0'
133 EOF
134 }
135
136 ucidef_set_interface_wan() {
137 local ifname=$1
138
139 uci batch <<EOF
140 set network.wan='interface'
141 set network.wan.ifname='$ifname'
142 set network.wan.proto='dhcp'
143 EOF
144 }
145
146 ucidef_set_interfaces_lan_wan() {
147 local lan_ifname=$1
148 local wan_ifname=$2
149
150 ucidef_set_interface_lan "$lan_ifname"
151 ucidef_set_interface_wan "$wan_ifname"
152 }
153
154 ucidef_set_interface_macaddr() {
155 local ifname=$1
156 local mac=$2
157
158 uci batch <<EOF
159 set network.$ifname.macaddr='$mac'
160 EOF
161 }
162
163 ucidef_add_switch() {
164 local name=$1
165 local reset=$2
166 local enable=$3
167 uci batch <<EOF
168 add network switch
169 set network.@switch[-1].name='$name'
170 set network.@switch[-1].reset='$reset'
171 set network.@switch[-1].enable_vlan='$enable'
172 EOF
173 }
174
175 ucidef_add_switch_vlan() {
176 local device=$1
177 local vlan=$2
178 local ports=$3
179 uci batch <<EOF
180 add network switch_vlan
181 set network.@switch_vlan[-1].device='$device'
182 set network.@switch_vlan[-1].vlan='$vlan'
183 set network.@switch_vlan[-1].ports='$ports'
184 EOF
185 }
186