mirror of https://github.com/docker/docs.git
				
				
				
			
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
| #!/bin/sh
 | |
| 
 | |
| # This pre-commit hook will abort if a committed file doesn't pass gofmt.
 | |
| # By Even Shaw <edsrzf@gmail.com>
 | |
| # http://github.com/edsrzf/gofmt-git-hook
 | |
| 
 | |
| test_fmt() {
 | |
|     hash gofmt 2>&- || { echo >&2 "gofmt not in PATH."; exit 1; }
 | |
|     IFS='
 | |
| '
 | |
|     for file in `git diff --cached --name-only --diff-filter=ACM | grep '\.go$'`
 | |
|     do
 | |
|         output=`git cat-file -p :$file | gofmt -l 2>&1`
 | |
|         if test $? -ne 0
 | |
|         then
 | |
|             output=`echo "$output" | sed "s,<standard input>,$file,"`
 | |
|             syntaxerrors="${list}${output}\n"
 | |
|         elif test -n "$output"
 | |
|         then
 | |
|             list="${list}${file}\n"
 | |
|         fi
 | |
|     done
 | |
|     exitcode=0
 | |
|     if test -n "$syntaxerrors"
 | |
|     then
 | |
|         echo >&2 "gofmt found syntax errors:"
 | |
|         printf "$syntaxerrors"
 | |
|         exitcode=1
 | |
|     fi
 | |
|     if test -n "$list"
 | |
|     then
 | |
|         echo >&2 "gofmt needs to format these files (run gofmt -w and git add):"
 | |
|         printf "$list"
 | |
|         exitcode=1
 | |
|     fi
 | |
|     exit $exitcode
 | |
| }
 | |
| 
 | |
| case "$1" in
 | |
|     --about )
 | |
|         echo "Check Go code formatting"
 | |
|         ;;
 | |
|     * )
 | |
|         test_fmt
 | |
|         ;;
 | |
| esac
 |