#!/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
}