#!/bin/sh /etc/rc.common

START=60

USE_PROCD=1

tty_from_dev() {
	local cdc_path tty_devpath filepath filename

	cdc_path="$(readlink -f /sys/class/usbmisc/$1/device/)"
	tty_devpath="${cdc_path::-1}3"

	for filepath in "$tty_devpath"/* ; do
		filename="$(basename "${filepath}")"
		if [[ "$filename" == "ttyUSB*" ]]; then
			echo "$filename"
		fi
	done
}

start_service() {
	local enabled="$(uci -q get quectel-timesync.@quectel-timesync[-1].enabled)"
	local interval="$(uci -q get quectel-timesync.@quectel-timesync[-1].interval)"
	local path="$(uci -q get quectel-timesync.@quectel-timesync[-1].path)"
	local device="$(uci -q get quectel-timesync.@quectel-timesync[-1].device)"
	local device_name

	[ -z "$device" ] || {
		device_name="$(basename "$device")"
		path="/dev/$(tty_from_dev "$device_name")"
	}

	interval="${interval:-10}"

	[ "$enabled" -gt 0 ] || return

	procd_open_instance
	procd_set_param command /usr/sbin/quectel-timesync -d "$interval" -p "$path"
	procd_set_param respawn 60 5 5
	procd_close_instance
}

service_triggers() {
	procd_add_reload_trigger quectel-timesync
}
