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