diff options
author | Patrick Georgi <pgeorgi@google.com> | 2019-02-27 22:02:04 +0100 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2019-03-05 16:13:10 +0000 |
commit | 278529098918f2bdcf43526e584c102c78097b43 (patch) | |
tree | ff2b983925bdf0dbc11e8502a7ce9907be64fd91 /util/lint/lint-stable-022-clang-format | |
parent | 626ba097a2cd1c87800a2154420829b09803467e (diff) |
util/lint: Fix clang-format test and enable it by default
git diff needed to emit diffs without prefix (e.g. a/ and b/) for
clang-format-diff to be able to work.
Also require that the test succeeds, but note that it only runs on
trees whitelisted in $(top)/.clang-format-scope.
Change-Id: I7e9a32eb9281b5cb0b45506a206500fd1d315372
Signed-off-by: Patrick Georgi <pgeorgi@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/31654
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin Roth <martinroth@google.com>
Diffstat (limited to 'util/lint/lint-stable-022-clang-format')
-rwxr-xr-x | util/lint/lint-stable-022-clang-format | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/util/lint/lint-stable-022-clang-format b/util/lint/lint-stable-022-clang-format new file mode 100755 index 0000000000..bd662e472f --- /dev/null +++ b/util/lint/lint-stable-022-clang-format @@ -0,0 +1,38 @@ +#!/bin/sh +# This file is part of the coreboot project. +# +# Copyright (C) 2018 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: Run clang-format on white-listed directories + +LC_ALL=C export LC_ALL + +# until we require this by default, we need a list of opted-in directories +if [ ! -f .clang-format-scope ]; then + exit 0 +fi + +files_to_check=$(git log HEAD~..HEAD --format= --name-only $(cat .clang-format-scope) |grep "\.[ch]$") + +# nothing to do +if [ -z "$files_to_check" ]; then + exit 0 +fi + +if [ $(clang-format $files_to_check | wc -l) -gt 0 ]; then + if [ "$(git diff --no-prefix HEAD~..HEAD -- $files_to_check | clang-format-diff)" != "" ]; then + echo "Coding style mismatch. The following patch fixes it:" + git diff --no-prefix HEAD~..HEAD -- $files_to_check | clang-format-diff + exit 1 + fi +fi |