Branch oldpackages for 14.07
[14.07/packages.git] / net / mini_snmpd / files / mini_snmpd.init
1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2009-2012 OpenWrt.org
3
4 START=50
5
6 SERVICE_DAEMONIZE=1
7 SERVICE_WRITE_PID=1
8
9 append_disk() {
10         local disk="$1"
11         append disks "$disk" ','
12 }
13
14 append_interface() {
15         local name="$1"
16         local device
17         network_get_device device "$name"
18         append interfaces "${device:-$name}" ','
19 }
20
21 append_string() {
22         local section="$1"
23         local option="$2"
24         local value="$3"
25         local _val
26         config_get _val "$section" "$option"
27         [ -n "$_val" ] && append args "$3 $_val"
28 }
29
30 start_instance() {
31         local cfg="$1"
32         local args=""
33         local disks=""
34         local interfaces=""
35         local ipv6
36
37         append_string "$cfg" community "-c"
38         append_string "$cfg" location "-L"
39         append_string "$cfg" contact "-C"
40
41         config_get_bool ipv6 "$cfg" "ipv6" '0'
42         [ "$ipv6" -gt 0 ] && append args "-6"
43
44         config_get_bool enabled "$cfg" "enabled" '1'
45         [ "$enabled" -gt 0 ] || return 1
46
47         config_list_foreach "$section" 'disks' append_disk
48         args="${args}${disks:+ -d $disks}"
49
50         config_list_foreach "$section" 'interfaces' append_interface
51         args="${args}${interfaces:+ -i $interfaces}"
52
53         service_start /usr/bin/mini_snmpd $args
54 }
55
56 start() {
57         . /lib/functions/network.sh
58
59         config_load 'mini_snmpd'
60         config_foreach start_instance 'mini_snmpd'
61 }
62
63 stop() {
64         service_stop /usr/bin/mini_snmpd
65 }