Merge pull request #878 from jow-/lxc-autoconf-fix
[feed/packages.git] / utils / gammu / files / smsd.init
1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2015 villy@sft.ru
3
4 START=98
5
6 USE_PROCD=1
7 PROG=/usr/bin/gammu-smsd
8 CONFPFX=/var/smsd
9
10 start_instance() {
11 local conf="$1"
12 local item
13 local conffile="$CONFPFX-$conf.conf"
14
15 config_get_bool item "$conf" enabled 0
16 [ $item = 0 ] && return
17
18 echo -e "; dont edit. instead look into /etc/config/smsd\n[gammu]\n" > $conffile
19
20 config_get item "$conf" device
21 [ -z "$item" ] && return
22 echo "device = $item" >> $conffile
23
24 config_get item "$conf" connection
25 [ -z "$item" ] && return
26 echo "connection = $item" >> $conffile
27
28 config_get item "$conf" logfile
29 [ -z "$item" ] && item=syslog
30 echo "logfile = $item" >> $conffile
31
32 echo -e "\n[smsd]\nphoneid = $conf\nservice = files\nlogfile = $item" >> $conffile
33 echo -e "checkbattery = 0\nhangupcalls = 1" >> $conffile
34
35 config_get item "$conf" pin
36 [ -n "$item" ] && echo "pin = $item" >> $conffile
37
38 config_get item "$conf" phonecode
39 [ -n "$item" ] && echo "phonecode = $item" >> $conffile
40
41 config_get item "$conf" send
42 [ -n "$item" ] && echo "send = $item" >> $conffile
43
44 config_get item "$conf" receive
45 [ -n "$item" ] && echo "receive = $item" >> $conffile
46
47 config_get item "$conf" timeout
48 [ -n "$item" ] && echo "commtimeout = $item" >> $conffile
49
50 config_get item "$conf" sleep
51 [ -n "$item" ] && echo "loopsleep = $item" >> $conffile
52
53 config_get item "$conf" report
54 [ -n "$item" ] && echo "deliveryreport = $item" >> $conffile
55
56 config_get item "$conf" onreceive
57 [ -n "$item" ] && echo "runonreceive = $item" >> $conffile
58
59 config_get item "$conf" onerror
60 [ -n "$item" ] && echo "runonfailure = $item" >> $conffile
61
62 config_get item "$conf" spool
63 [ -z "$item" ] && item=/var/sms
64 [ ! -d $item ] && {
65 mkdir $item
66 mkdir $item/inbox
67 mkdir $item/outbox
68 mkdir $item/sent
69 mkdir $item/error
70 }
71 echo -e "inboxpath = $item/inbox/\noutboxpath = $item/outbox/" >> $conffile
72 echo -e "sentsmspath = $item/sent/\nerrorsmspath = $item/error/" >> $conffile
73
74 config_get item "$conf" allow
75 [ -n "$item" ] && {
76 local data
77 local allowfile=$CONFPFX-$conf.allow
78 for data in $item ; do
79 echo $data >> $allowfile
80 done
81
82 echo "includenumbersfile = $allowfile" >> $conffile
83 }
84
85 config_get item "$conf" deny
86 [ -n "$item" ] && {
87 local data
88 local denyfile=$CONFPFX-$conf.deny
89 for data in $item ; do
90 echo $data >> $denyfile
91 done
92
93 echo "excludenumbersfile = $denyfile" >> $conffile
94 }
95
96 procd_open_instance
97
98 config_get_bool item "$conf" respawn 0
99 [ $item != 0 ] && procd_set_param respawn
100
101 procd_set_param command $PROG --config=$conffile
102
103 config_get item "$conf" pidfile
104 [ -n "$item" ] && procd_append_param command --pid=$item
105
106 procd_close_instance
107 }
108
109 start_service() {
110 config_load smsd
111 config_foreach start_instance daemon
112 }
113
114 service_triggers() {
115 procd_add_reload_trigger "smsd"
116 }