lede-packages-rs

git clone git://archive.git.mtrnord.blog/MTRNord/lede-packages-rs.git
Log | Files | Refs | README | LICENSE

gammu.init (2829B)


      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 }