#!/bin/bash source "${MAKEDIR}/.validate" # We will eventually get to the point when packages should be the complete list # of subpackages, vendoring excluded, as given by: # # packages=( $(go list ./... 2> /dev/null | grep -vE "^github.com/docker/docker/vendor" || true ) ) packages=( api api/client api/client/ps api/server api/types builder builder/command builder/parser builder/parser/dumper cliconfig daemon/events daemon/execdriver daemon/execdriver/execdrivers daemon/execdriver/lxc daemon/execdriver/native daemon/execdriver/native/template daemon/execdriver/windows daemon/graphdriver daemon/graphdriver/aufs daemon/graphdriver/devmapper daemon/graphdriver/overlay daemon/graphdriver/vfs daemon/graphdriver/zfs daemon/logger daemon/logger/fluentd daemon/logger/gelf daemon/logger/journald daemon/logger/jsonfilelog daemon/logger/syslog daemon/network docker dockerinit graph graph/tags image integration-cli pkg/archive pkg/broadcastwriter pkg/chrootarchive pkg/directory pkg/fileutils pkg/graphdb pkg/homedir pkg/httputils pkg/ioutils pkg/jsonlog pkg/jsonmessage pkg/listenbuffer pkg/mflag pkg/mflag/example pkg/mount pkg/namesgenerator pkg/nat pkg/parsers pkg/parsers/filters pkg/parsers/kernel pkg/parsers/operatingsystem pkg/pidfile pkg/plugins pkg/pools pkg/progressreader pkg/promise pkg/proxy pkg/pubsub pkg/random pkg/reexec pkg/signal pkg/sockets pkg/streamformatter pkg/stringid pkg/stringutils pkg/sysinfo pkg/symlink pkg/tailfile pkg/tarsum pkg/term pkg/timeoutconn pkg/timeutils pkg/tlsconfig pkg/truncindex pkg/urlutil pkg/ulimit pkg/units pkg/useragent pkg/version registry runconfig utils volume volume/local volume/drivers ) errors=() for p in "${packages[@]}"; do # Run golint on package/*.go file explicitly to validate all go files # and not just the ones for the current platform. failedLint=$(golint "$p"/*.go) if [ "$failedLint" ]; then errors+=( "$failedLint" ) fi done if [ ${#errors[@]} -eq 0 ]; then echo 'Congratulations! All Go source files have been linted.' else { echo "Errors from golint:" for err in "${errors[@]}"; do echo "$err" done echo echo 'Please fix the above errors. You can test via "golint" and commit the result.' echo } >&2 false fi