First Commit
[librecmc/package-feed.git] / utils / gammu / files / gammu.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/gammu
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 "; don't edit. instead look into /etc/config/gammu\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 gammu
111         config_foreach start_instance daemon
112 }
113
114 service_triggers() {
115         procd_add_reload_trigger "gammu"
116 }