aboutsummaryrefslogtreecommitdiff
path: root/net/modemmanager/files/usr/sbin/ModemManager-wrapper
blob: b0f36c267aaca5c75374240bad50782d62b8cda3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/bin/sh

. /usr/share/ModemManager/modemmanager.common

trap_with_arg() {
	func="$1" ; shift
	for sig ; do
		# shellcheck disable=SC2064
		trap "$func $sig" "$sig"
	done
}

func_trap() {
	logger "ModemManager-wrapper[$$]" "Sending signal ${1}..."
	kill "-${1}" "$CHILD" 2>/dev/null
}

main() {
	trap_with_arg func_trap INT TERM KILL

	mkdir -p "${MODEMMANAGER_RUNDIR}"
	chmod 0755 "${MODEMMANAGER_RUNDIR}"

	/usr/sbin/ModemManager "$@" 1>/dev/null 2>/dev/null &
	CHILD="$!"

	mm_report_events_from_cache

	wait "$CHILD"
}

main "$@"