summaryrefslogtreecommitdiff
path: root/util/lint/lint-022-clang-format
diff options
context:
space:
mode:
Diffstat (limited to 'util/lint/lint-022-clang-format')
-rwxr-xr-xutil/lint/lint-022-clang-format34
1 files changed, 34 insertions, 0 deletions
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