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>
		
			
				
	
	
		
			39 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/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
 |