github.com/docker/libcompose@v0.4.1-0.20210616120443-2a046c0bdbf2/hack/validate-lint (about)

     1  #!/bin/bash
     2  
     3  source "$(dirname "$BASH_SOURCE")/.validate"
     4  
     5  # We will eventually get to the point where packages should be the complete list
     6  # of subpackages, vendoring excluded, as given by:
     7  #
     8  IFS=$'\n'
     9  files=( $(validate_diff --diff-filter=ACMR --name-only -- '*.go' | grep -v '^vendor/\|^integration' || true) )
    10  unset IFS
    11  
    12  errors=()
    13  for f in "${files[@]}"; do
    14  	# we use "git show" here to validate that what's committed passes go lint
    15  	failedLint=$(golint "$f")
    16  	if [ "$failedLint" ]; then
    17  		errors+=( "$failedLint" )
    18  	fi
    19  done
    20  
    21  if [ ${#errors[@]} -eq 0 ]; then
    22  	echo 'Congratulations!  All Go source files have been linted.'
    23  else
    24  	{
    25  		echo "Errors from golint:"
    26  		for err in "${errors[@]}"; do
    27  			echo "$err"
    28  		done
    29  		echo
    30  		echo 'Please fix the above errors. You can test via "golint" and commit the result.'
    31  		echo
    32  	} >&2
    33  	false
    34  fi