#!/bin/sh
# This file is part of the coreboot project.
#
# Copyright 2016 Google Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# DESCR: check Kconfig files for warnings and errors

LC_ALL=C export LC_ALL

# Verify that the test can run, tell users the issue
if [ -z "$(command -v perl)" ]; then
	echo "The kconfig lint tool uses perl.  Please install it to run this test."
fi

# If coreboot is in a git repo, use git grep to check as it will ignore any
# files in the tree that aren't checked into git
if [ -n "$(command -v git)" ] && [ -e ".git" ]; then
	env perl util/lint/kconfig_lint
else
	env perl util/lint/kconfig_lint --no_git_grep
fi
