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

USE_PROCD=1
START=70

stop_service() {
	# Load common utils
	. /usr/share/ModemManager/modemmanager.common
	# Set all configured interfaces as unavailable
	mm_cleanup_interfaces
}

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 they're all included as instance command
	#
	procd_open_instance
	procd_set_param command sh -c ". /usr/share/ModemManager/modemmanager.common;    \
	                               mkdir -m 0755 -p ${MODEMMANAGER_RUNDIR};          \
	                               mm_cleanup_interfaces;                            \
	                               ( mm_report_events_from_cache ) >/dev/null 2>&1 & \
	                               /usr/sbin/ModemManager"
	procd_set_param respawn "${respawn_threshold:-3600}" "${respawn_timeout:-5}" "${respawn_retry:-5}"
	procd_set_param pidfile "${MODEMMANAGER_PID_FILE}"
	procd_close_instance
}
