First Commit
[librecmc/package-feed.git] / utils / owfs / files / owftpd.init
1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2009-2015 OpenWrt.org
3
4 START=95
5 USE_PROCD=1
6
7 PROG=/usr/bin/owftpd
8
9 append_arg() {
10         local cfg="$1"
11         local var="$2"
12         local opt="$3"
13         local def="$4"
14         local val
15
16         config_get val "$cfg" "$var"
17         [ -n "$val" -o -n "$def" ] && procd_append_param command $opt "${val:-$def}"
18 }
19
20 append_bool() {
21         local cfg="$1"
22         local var="$2"
23         local opt="$3"
24         local def="$4"
25         local val
26
27         config_get_bool val "$cfg" "$var" "$def"
28         [ "$val" = 1 ] && procd_append_param command "$opt"
29 }
30
31 append_plain() {
32         procd_append_param command "$1"
33 }
34
35 append_param() {
36         local cfg="$1"
37         local var="$2"
38         local opt="$3"
39         local def="$4"
40         local val
41
42         config_get val "$cfg" "$var"
43         [ -n "$val" -o -n "$def" ] && procd_append_param "$opt" "${val:-$def}"
44 }
45
46 start_instance() {
47         local cfg="$1"
48         local enabled
49
50         config_get_bool enabled "$cfg" 'enabled' '0'
51         [ "$enabled" = 0 ] && return 1
52
53         procd_open_instance
54
55         procd_set_param command "$PROG" --foreground --error_print=1
56
57         # common parameters
58         append_bool "$cfg" readonly "--readonly"
59         append_arg "$cfg" error_level "--error_level"
60         config_list_foreach "$cfg" options append_plain
61         config_list_foreach "$cfg" devices append_plain
62         append_param "$cfg" user user
63
64         # owftpd-specific
65         append_arg "$cfg" port "--port"
66         append_arg "$cfg" max_connections "--max_connections"
67
68         procd_set_param respawn
69
70         procd_close_instance
71
72 }
73
74 service_triggers() {
75         procd_add_reload_trigger owftpd
76 }
77
78 start_service() {
79         config_load owftpd
80         config_foreach start_instance owftpd
81 }