#!/bin/sh -efu

. sh-functions

modules_file='/conf/modules-postudev'
modules_list=
modules_check=

while [ "$#" -gt 0 ]; do
	case "$1" in
		--pre-udev)
			modules_file='/conf/modules-preudev'
			;;
		--post-udev)
			modules_file='/conf/modules-postudev'
			;;
		--check) shift
			[ -x "$1" ] ||
				fatal "Not executable: $1"
			modules_check="$1"
			;;
		*)
			modules_list="$modules_list ${1##*/}"
			;;
	esac
	shift
done

for n in $modules_list; do
	! fgrep -xqs "$n" "$rootdir/$modules_file" ||
		continue

	add-module "$n"
	printf '%s\n' "$n" >> "$rootdir/$modules_file"

	[ -z "$modules_check" ] ||
		cp -a -- "$modules_check" "$rootdir/scripts/kmodules/check-$n"
done
