#!/bin/sh /etc/rc.common
# Cellular Modem Manager Daemon
# Dante <dante@seckv.com>

USE_PROCD=1
START=95
STOP=10

PROG="/usr/libexec/modem-collector"

start_service() {
	local enabled check_interval
	config_load modem-manager
	config_get_bool enabled global enabled 1
	config_get check_interval global check_interval 15

	[ "$enabled" -eq 1 ] || return 0

	mkdir -p /tmp/run/modem-manager /var/log /var/lock
	touch /var/log/modem-manager.log

	# Warm up devices discovery cache at startup
	/usr/libexec/modem-detect --cache >/dev/null 2>&1 &

	procd_open_instance
	procd_set_param command "$PROG"
	procd_set_param respawn 3600 5 0
	procd_set_param stdout 1
	procd_set_param stderr 1
	procd_close_instance
}

stop_service() {
	rm -f /var/lock/modem_terminal_active.lock 2>/dev/null || true
}

reload_service() {
	stop
	start
}

service_triggers() {
	procd_add_reload_trigger "modem-manager"
}
