From f743728e9fe05705bbac01978368cdd8ddcf2af6 Mon Sep 17 00:00:00 2001 From: Patrick Georgi Date: Thu, 24 May 2018 17:36:41 +0200 Subject: [PATCH] util/lint: Add check that changes conform to clang-format style It's a white list (configured through $(top)/.clang-format-scope) with the expectation that the list will grow over time. Once everything is covered, we can turn off the white-listing and keep everything enforced. To not drive people crazy, only check the files their commit touched. Change-Id: I52c7ea73fd36aaa46c0bfce928158e1cd6304540 Signed-off-by: Patrick Georgi Reviewed-on: https://review.coreboot.org/26514 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich --- util/lint/lint-022-clang-format | 34 +++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100755 util/lint/lint-022-clang-format diff --git a/util/lint/lint-022-clang-format b/util/lint/lint-022-clang-format new file mode 100755 index 0000000000..932d9c0d50 --- /dev/null +++ b/util/lint/lint-022-clang-format @@ -0,0 +1,34 @@ +#!/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 + git diff HEAD~..HEAD -- $files_to_check | clang-format-diff +fi