openwrt-packages/utils/hamlib/files/rigctld.init

78 lines
1.5 KiB
Bash
Executable File

#!/bin/sh /etc/rc.common
USE_PROCD=1
START=50
STOP=50
NAME=rigctld
TYPE=rig
BIN=/usr/bin/rigctld
# option model '1234' => --model=1234
OPTIONS_STRING="model rig_file ptt_file dcd_file ptt_type dcd_type serial_speed civaddr listen_addr port set_conf twiddle_timeout uplink"
# option vfo '1' => --vfo
OPTIONS_BOOL="debug_time_stamps vfo"
# option verbose '3' => --verbose --verbose --verbose
OPTIONS_CUMULATIVE="verbose"
start_service() {
local instance="$1"
config_load "${NAME}"
if [ -n "$instance" ]; then
start_instance "$instance"
else
config_foreach start_instance "$TYPE"
fi
}
start_instance() {
local instance="$1"
config_get_bool "enabled" "$instance" "enabled" 0
[ "$enabled" -gt 0 ] || return
procd_open_instance "$instance"
procd_set_param command "$BIN"
procd_set_param stdout 1
procd_set_param stderr 1
local option
local value
for option in $OPTIONS_STRING; do
config_get value "$instance" "$option"
[ -n "$value" ] || continue
option="${option//_/-}"
procd_append_param command "--$option=$value"
done
for option in $OPTIONS_BOOL; do
config_get_bool value "$instance" "$option" 0
[ "$value" -eq 1 ] || continue
option="${option//_/-}"
procd_append_param command "--$option"
done
for option in $OPTIONS_CUMULATIVE; do
config_get value "$instance" "$option" 0
[ -n "$value" ] || continue
option="${option//_/-}"
local i=0
while [ $i -lt "$value" ]; do
procd_append_param command "--$option"
let i++
done
done
procd_close_instance
}