#!/bin/sh

MODULES_DIR="/etc/modules-load.d/"

[ -z "$(ls -A ${MODULES_DIR} 2> /dev/null)" ] && exit 0

load_unload() {
	for module_file in "${MODULES_DIR}"/*.conf; do
		while read -r module args; do

			case "$module" in
				""|"#"*) continue ;;
			esac

			if [ "$1" = "load" ]; then
				# shellcheck disable=SC2086  # We need word splitting for args
				modprobe -q "${module}" ${args} >/dev/null && \
					printf '%s ' "$module" || RET='FAIL'
			else
				rmmod "${module}" >/dev/null
			fi

		done < "${module_file}"
	done

	RET='OK'
}

start() {
	printf 'Starting modules: '

	load_unload load

	echo $RET
}

stop() {
	printf 'Stopping modules: '

	load_unload unload

	echo $RET
}

restart() {
	stop
	sleep 1
	start
}

case "$1" in
	start|stop|restart)
		"$1";;
	reload)
		# Restart, since there is no true "reload" feature.
		restart;;
	*)
		echo "Usage: $0 {start|stop|restart|reload}"
		exit 1
esac

# check-package Ignore missing DAEMON Variables
