ad0ddfe11c9bf55d6fc791fe9fc468794c8b2255
[feed/packages.git] / net / p910nd / files / p910nd.init
1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2007 OpenWrt.org
3 START=99
4 USE_PROCD=1
5 DAEMON_NAME="p910nd"
6 CONFIG="p910nd"
7
8 append_bool() {
9 local section="$1"
10 local option="$2"
11 local value="$3"
12 local _val
13 config_get_bool _val "$section" "$option" '0'
14 [ "$_val" -gt 0 ] && append args "$3"
15 }
16
17 append_string() {
18 local section="$1"
19 local option="$2"
20 local value="$3"
21 local _val
22 config_get _val "$section" "$option"
23 [ -n "$_val" ] && append args "$3$_val"
24 }
25
26 start_service() {
27 config_load $CONFIG
28 config_foreach start_p910nd $CONFIG
29 }
30
31
32 start_p910nd() {
33 local section="$1" runas_root
34 config_get_bool "enabled" "$section" "enabled" '0'
35 if [ "$enabled" -gt 0 ]; then
36 args="-d "
37 config_get port "$section" port
38 append_bool "$section" bidirectional "-b"
39 append_string "$section" device "-f "
40 append_string "$section" bind "-i "
41 append_string "$section" port ""
42 procd_open_instance $DAEMON_NAME
43 procd_set_param command /usr/sbin/$DAEMON_NAME $args
44 procd_set_param respawn
45
46 config_get_bool runas_root "$section" runas_root 0
47 [ "$runas_root" -ne 1 ] && procd_set_param user $DAEMON_NAME
48
49 config_get_bool "mdns" "$section" "mdns" '0'
50 if [ "$mdns" -gt 0 ]; then
51 config_get mdns_note "$section" mdns_note
52 config_get mdns_ty "$section" mdns_ty
53 config_get mdns_product "$section" mdns_product
54 config_get mdns_mfg "$section" mdns_mfg
55 config_get mdns_mdl "$section" mdns_mdl
56 config_get mdns_cmd "$section" mdns_cmd
57 procd_add_mdns "pdl-datastream" "tcp" "$((port+9100))" "note=$mdns_note" "ty=$mdns_ty" "product=$mdns_product" "usb_MFG=$mdns_mfg" "usb_MDL=$mdns_mdl" "usb_CMD=$mdns_cmd"
58 fi
59 procd_close_instance
60 fi
61 }
62
63 service_triggers()
64 {
65 procd_open_trigger
66 procd_add_config_trigger "config.change" $DAEMON_NAME /etc/init.d/$DAEMON_NAME reload
67 procd_close_trigger
68 }