#!/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=( builder builder/command builder/parser builder/parser/dumper daemon/events daemon/execdriver/native/template daemon/network docker dockerinit integration-cli pkg/chrootarchive pkg/directory pkg/fileutils pkg/homedir pkg/listenbuffer pkg/mflag/example pkg/mount pkg/namesgenerator pkg/nat pkg/promise pkg/pubsub pkg/random pkg/reexec pkg/symlink pkg/timeutils pkg/tlsconfig pkg/urlutil pkg/version utils ) 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