#!/bin/sh

. /etc/control.d/functions

CONFIG=/etc/pam.d/system-check-localuser

new_summary 'system-auth check local user method'

check_local_user_helpstring()
{
	case "$1" in
	legacy)
		echo 'legacy local user mode'
		;;
	systemd)
		echo 'systemd local user mode'
		;;
	*)
		echo "use $1 local user mode"
	esac
}

for f in $CONFIG-*; do
	v="${f#$CONFIG-}"
	case "$v" in
		*.*|*~)
			continue # ignore backup files
			;;
	esac

	new_help "$v" "$(check_local_user_helpstring $v)"
done

REQUEST="$*"

case "$REQUEST" in
	help|'help '*)
		control_help "${REQUEST#help}"
		;;
	list)
		control_list
		;;
	summary)
		control_summary
		;;
	status)
		CURRENT="$(readlink -e "$CONFIG")"
		CURRENT="${CURRENT#$CONFIG-}"
		CURRENT="${CURRENT##*/}"
		echo "${CURRENT:-unknown}"
		;;
	*)
		if [ ! -f "$CONFIG-$REQUEST" ]; then
			printf '%s: %s\n' "${0##*/}" "Invalid mode: $REQUEST" >&2
			exit 1
		fi
		CURRENT="$(readlink -e "$CONFIG")"
		CURRENT="${CURRENT#$CONFIG-}"
		CURRENT="${CURRENT##*/}"
		ln -sf "${CONFIG##*/}-$REQUEST" "$CONFIG"
		;;
esac
