#!/bin/sh /etc/rc.common
# Copyright (C) 2016 Aleksander Morgado <aleksander@aleksander.es>

USE_PROCD=1
START=70

LOG_LEVEL="INFO"

start_service() {
	# Setup ModemManager service
	#
	# We will make sure that the rundir always exists, and we initially cleanup
	# all interfaces flagging them as unavailable.
	#
	# The cached events processing will wait for MM to be available in DBus
	# and will make sure all ports are re-notified to ModemManager every time
	# it starts.
	#
	# All these commands need to be executed on every MM start, even after
	# procd-triggered respawns, which is why this is wrapped in a startup
	# wrapper script called '/usr/sbin/ModemManager-wrapper'.
	#
	. /usr/share/ModemManager/modemmanager.common
	procd_open_instance "service"
	procd_set_param command /usr/sbin/ModemManager-wrapper
	procd_append_param command --log-level="$LOG_LEVEL"
	[ "$LOG_LEVEL" = "DEBUG" ] && procd_append_param command --debug
	procd_set_param respawn "${respawn_threshold:-3600}" "${respawn_timeout:-5}" "${respawn_retry:-5}"
	procd_set_param pidfile "${MODEMMANAGER_PID_FILE}"
	procd_close_instance
	procd_open_instance "monitor"
	procd_set_param command /usr/sbin/ModemManager-monitor
	procd_set_param respawn "${respawn_threshold:-3600}" "${respawn_timeout:-5}" "${respawn_retry:-5}"
	procd_close_instance
}
