#! /bin/sh
set -eu

prev_output=""
prev_lint=""

ulimit -c 0

for lint1 in \
    "$HOME/proj/src/usr.bin/xlint/lint1/lint1" \
    /usr/libexec/lint1 \
    $(ls -r libexec/20??.*-plain/lint1); do
	[ -x "$lint1" ] || continue

	lint_name="$lint1"
	case $lint_name in libexec/*-*/lint1)
		lint_name="${lint_name#libexec/}"
		lint_name="${lint_name%-*/lint1}"
	esac

	curr_output=$( ("$lint1" "$@" /dev/null && exit 0) 2>&1 \
	    && echo "exit status $?" \
	    || echo "exit status $?"
	)

	if [ "$prev_output" != "$curr_output" ]; then
		if [ "$prev_lint" ]; then
			printf '%s\n\n' "$prev_lint"
		fi
		printf '%s\n' "$lint_name"
		printf '%s\n' "$curr_output" | sed 's,^,| ,'
		prev_output="$curr_output"
	fi
	prev_lint="$lint_name"
done
echo "$prev_lint"