#!/bin/sh -e
# Script to test if linting is sane by running it on a whole repository
GIT_DIR="$(git rev-parse --show-toplevel 2>/dev/null || true)"
SCRIPT_DIR="$(dirname "$(realpath "$0")")"
OUT=/tmp/lint_all_out
TYPES="$1"

echo "Running find in $GIT_DIR"
files=$(find \
	"$GIT_DIR" \
	-name '*.c' \
	-o -name '*.h' \
	-o -name '*.cpp' \
	-o -name '*.hpp')

if [ -n "$TYPES" ]; then
	echo "Running checkpath with --types="$TYPES" in $GIT_DIR"

	"$SCRIPT_DIR"/checkpatch/checkpatch.pl \
		-f \
		--color=always \
		--no-summary \
		--no-tree \
		--show-types \
		--terse \
		--types="$TYPES" \
		$files \
		| tee "$OUT"

else
	echo "Running checkpath in $GIT_DIR"

	"$SCRIPT_DIR"/checkpatch/checkpatch_osmo.sh \
		-f \
		--color=always \
		--no-summary \
		--show-types \
		--terse \
		$files \
		| tee "$OUT"
fi

wc -l "$OUT"