github.com/rsampaio/docker@v0.7.2-0.20150827203920-fdc73cc3fc31/hack/make/validate-lint (about)

     1  #!/bin/bash
     2  
     3  source "${MAKEDIR}/.validate"
     4  
     5  # We will eventually get to the point when packages should be the complete list
     6  # of subpackages, vendoring excluded, as given by:
     7  #
     8  # packages=( $(go list ./... 2> /dev/null | grep -vE "^github.com/docker/docker/vendor" || true ) )
     9  
    10  packages=(
    11  	api
    12  	api/client
    13  	api/client/ps
    14  	api/server
    15  	api/types
    16  	builder
    17  	builder/command
    18  	builder/parser
    19  	builder/parser/dumper
    20  	cliconfig
    21  	daemon/events
    22  	daemon/execdriver
    23  	daemon/execdriver/execdrivers
    24  	daemon/execdriver/lxc
    25  	daemon/execdriver/native
    26  	daemon/execdriver/native/template
    27  	daemon/execdriver/windows
    28  	daemon/graphdriver
    29  	daemon/graphdriver/aufs
    30  	daemon/graphdriver/devmapper
    31  	daemon/graphdriver/overlay
    32  	daemon/graphdriver/vfs
    33  	daemon/graphdriver/zfs
    34  	daemon/logger
    35  	daemon/logger/fluentd
    36  	daemon/logger/gelf
    37  	daemon/logger/journald
    38  	daemon/logger/jsonfilelog
    39  	daemon/logger/syslog
    40  	daemon/network
    41  	docker
    42  	dockerinit
    43  	graph
    44  	graph/tags
    45  	image
    46  	integration-cli
    47  	opts
    48  	pkg/archive
    49  	pkg/broadcastwriter
    50  	pkg/chrootarchive
    51  	pkg/directory
    52  	pkg/fileutils
    53  	pkg/graphdb
    54  	pkg/homedir
    55  	pkg/httputils
    56  	pkg/ioutils
    57  	pkg/jsonlog
    58  	pkg/jsonmessage
    59  	pkg/listenbuffer
    60  	pkg/mflag
    61  	pkg/mflag/example
    62  	pkg/mount
    63  	pkg/namesgenerator
    64  	pkg/nat
    65  	pkg/parsers
    66  	pkg/parsers/filters
    67  	pkg/parsers/kernel
    68  	pkg/parsers/operatingsystem
    69  	pkg/pidfile
    70  	pkg/plugins
    71  	pkg/pools
    72  	pkg/progressreader
    73  	pkg/promise
    74  	pkg/proxy
    75  	pkg/pubsub
    76  	pkg/random
    77  	pkg/reexec
    78  	pkg/signal
    79  	pkg/sockets
    80  	pkg/stdcopy
    81  	pkg/streamformatter
    82  	pkg/stringid
    83  	pkg/stringutils
    84  	pkg/symlink
    85  	pkg/sysinfo
    86  	pkg/system
    87  	pkg/tailfile
    88  	pkg/tarsum
    89  	pkg/term
    90  	pkg/timeoutconn
    91  	pkg/timeutils
    92  	pkg/tlsconfig
    93  	pkg/truncindex
    94  	pkg/urlutil
    95  	pkg/ulimit
    96  	pkg/units
    97  	pkg/useragent
    98  	pkg/version
    99  	registry
   100  	runconfig
   101  	trust
   102  	utils
   103  	volume
   104  	volume/local
   105  	volume/drivers
   106  )
   107  
   108  errors=()
   109  for p in "${packages[@]}"; do
   110  	# Run golint on package/*.go file explicitly to validate all go files
   111  	# and not just the ones for the current platform.
   112  	failedLint=$(golint "$p"/*.go)
   113  	if [ "$failedLint" ]; then
   114  		errors+=( "$failedLint" )
   115  	fi
   116  done
   117  
   118  if [ ${#errors[@]} -eq 0 ]; then
   119  	echo 'Congratulations!  All Go source files have been linted.'
   120  else
   121  	{
   122  		echo "Errors from golint:"
   123  		for err in "${errors[@]}"; do
   124  			echo "$err"
   125  		done
   126  		echo
   127  		echo 'Please fix the above errors. You can test via "golint" and commit the result.'
   128  		echo
   129  	} >&2
   130  	false
   131  fi