#!/bin/sh
# This file is part of the coreboot project.
#
# Copyright (C) 2012 Patrick Georgi <patrick@georgi-clan.de>
# Copyright (C) 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 that C labels begin at start-of-line

LC_ALL=C export LC_ALL

# Use git ls-files if the code is in a git repo, otherwise use find.
if [ -n "$(command -v git)" ] && \
	[ "$(git rev-parse --is-inside-work-tree 2>/dev/null)" = "true" ]
then
	FIND_FILES="git ls-files"
else
	FIND_FILES="find src"
fi

${FIND_FILES} | \
	grep "^src/.*\.[csS]$" | \
	xargs grep -Hn '^[[:space:]][[:space:]]*[a-z][a-z]*:[[:space:]]*$' | \
	grep -v "[^a-z_]default:"
