DockerCLI/scripts/vendor

68 lines
1.2 KiB
Plaintext
Raw Normal View History

#!/usr/bin/env bash
set -eu
TYP=$1
usage() {
echo "usage: ./scripts/vendor <init|update|validate|outdated>"
exit 1
}
if [ -z "$TYP" ]; then
usage
fi
init() {
# create dummy go.mod, see comment in vendor.mod
cat > go.mod <<EOL
module github.com/docker/cli
vendor dependencies with go1.17 Some warnings about go1.16 compatibility, so including them here: + go mod tidy -modfile=vendor.mod github.com/docker/cli/cli/registry/client imports github.com/docker/distribution/registry/api/v2 imports github.com/gorilla/mux loaded from github.com/gorilla/mux@v1.7.0, but go 1.16 would select v1.8.0 github.com/docker/cli/cli/compose/loader imports gopkg.in/yaml.v2 tested by gopkg.in/yaml.v2.test imports gopkg.in/check.v1 loaded from gopkg.in/check.v1@v1.0.0-20200227125254-8fa46927fb4f, but go 1.16 would select v1.0.0-20201130134442-10cb98267c6c github.com/docker/cli/cli/command imports github.com/theupdateframework/notary/client tested by github.com/theupdateframework/notary/client.test imports github.com/theupdateframework/notary/server imports github.com/theupdateframework/notary/utils imports github.com/Shopify/logrus-bugsnag loaded from github.com/Shopify/logrus-bugsnag@v0.0.0-20170309145241-6dbc35f2c30d, but go 1.16 would select v0.0.0-20171204204709-577dee27f20d github.com/docker/cli/cli/command imports github.com/theupdateframework/notary/client tested by github.com/theupdateframework/notary/client.test imports github.com/theupdateframework/notary/server/storage imports gopkg.in/rethinkdb/rethinkdb-go.v6 imports github.com/opentracing/opentracing-go loaded from github.com/opentracing/opentracing-go@v1.1.0, but go 1.16 would select v1.2.0 github.com/docker/cli/cli/command imports github.com/theupdateframework/notary/client tested by github.com/theupdateframework/notary/client.test imports github.com/theupdateframework/notary/server/storage imports gopkg.in/rethinkdb/rethinkdb-go.v6 imports github.com/opentracing/opentracing-go/ext loaded from github.com/opentracing/opentracing-go@v1.1.0, but go 1.16 would select v1.2.0 github.com/docker/cli/cli/command imports github.com/theupdateframework/notary/client tested by github.com/theupdateframework/notary/client.test imports github.com/theupdateframework/notary/server/storage imports gopkg.in/rethinkdb/rethinkdb-go.v6 imports github.com/opentracing/opentracing-go/log loaded from github.com/opentracing/opentracing-go@v1.1.0, but go 1.16 would select v1.2.0 github.com/docker/cli/cli/command imports github.com/theupdateframework/notary/client tested by github.com/theupdateframework/notary/client.test imports github.com/theupdateframework/notary/server imports github.com/theupdateframework/notary/utils imports github.com/spf13/viper imports github.com/spf13/afero loaded from github.com/spf13/afero@v1.1.2, but go 1.16 would select v1.2.2 github.com/docker/cli/cli/command imports github.com/theupdateframework/notary/client tested by github.com/theupdateframework/notary/client.test imports github.com/theupdateframework/notary/server imports github.com/theupdateframework/notary/utils imports github.com/spf13/viper imports github.com/spf13/cast loaded from github.com/spf13/cast@v1.3.0, but go 1.16 would select v1.3.1 github.com/docker/cli/cli/command imports github.com/theupdateframework/notary/client tested by github.com/theupdateframework/notary/client.test imports github.com/theupdateframework/notary/server imports github.com/theupdateframework/notary/utils imports github.com/spf13/viper imports github.com/spf13/jwalterweatherman loaded from github.com/spf13/jwalterweatherman@v1.0.0, but go 1.16 would select v1.1.0 github.com/docker/cli/cli/command imports github.com/theupdateframework/notary/client tested by github.com/theupdateframework/notary/client.test imports github.com/theupdateframework/notary/server imports github.com/theupdateframework/notary/utils imports github.com/spf13/viper imports gopkg.in/ini.v1 loaded from gopkg.in/ini.v1@v1.51.0, but go 1.16 would select v1.56.0 github.com/docker/cli/cli/command imports github.com/theupdateframework/notary/client tested by github.com/theupdateframework/notary/client.test imports github.com/theupdateframework/notary/server imports github.com/theupdateframework/notary/utils imports github.com/spf13/viper imports github.com/spf13/afero imports github.com/spf13/afero/mem loaded from github.com/spf13/afero@v1.1.2, but go 1.16 would select v1.2.2 To upgrade to the versions selected by go 1.16: go mod tidy -go=1.16 && go mod tidy -go=1.17 If reproducibility with go 1.16 is not needed: go mod tidy -compat=1.17 For other options, see: https://golang.org/doc/modules/pruning Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-03-26 13:41:29 -04:00
go 1.17
EOL
}
update() {
vendor dependencies with go1.17 Some warnings about go1.16 compatibility, so including them here: + go mod tidy -modfile=vendor.mod github.com/docker/cli/cli/registry/client imports github.com/docker/distribution/registry/api/v2 imports github.com/gorilla/mux loaded from github.com/gorilla/mux@v1.7.0, but go 1.16 would select v1.8.0 github.com/docker/cli/cli/compose/loader imports gopkg.in/yaml.v2 tested by gopkg.in/yaml.v2.test imports gopkg.in/check.v1 loaded from gopkg.in/check.v1@v1.0.0-20200227125254-8fa46927fb4f, but go 1.16 would select v1.0.0-20201130134442-10cb98267c6c github.com/docker/cli/cli/command imports github.com/theupdateframework/notary/client tested by github.com/theupdateframework/notary/client.test imports github.com/theupdateframework/notary/server imports github.com/theupdateframework/notary/utils imports github.com/Shopify/logrus-bugsnag loaded from github.com/Shopify/logrus-bugsnag@v0.0.0-20170309145241-6dbc35f2c30d, but go 1.16 would select v0.0.0-20171204204709-577dee27f20d github.com/docker/cli/cli/command imports github.com/theupdateframework/notary/client tested by github.com/theupdateframework/notary/client.test imports github.com/theupdateframework/notary/server/storage imports gopkg.in/rethinkdb/rethinkdb-go.v6 imports github.com/opentracing/opentracing-go loaded from github.com/opentracing/opentracing-go@v1.1.0, but go 1.16 would select v1.2.0 github.com/docker/cli/cli/command imports github.com/theupdateframework/notary/client tested by github.com/theupdateframework/notary/client.test imports github.com/theupdateframework/notary/server/storage imports gopkg.in/rethinkdb/rethinkdb-go.v6 imports github.com/opentracing/opentracing-go/ext loaded from github.com/opentracing/opentracing-go@v1.1.0, but go 1.16 would select v1.2.0 github.com/docker/cli/cli/command imports github.com/theupdateframework/notary/client tested by github.com/theupdateframework/notary/client.test imports github.com/theupdateframework/notary/server/storage imports gopkg.in/rethinkdb/rethinkdb-go.v6 imports github.com/opentracing/opentracing-go/log loaded from github.com/opentracing/opentracing-go@v1.1.0, but go 1.16 would select v1.2.0 github.com/docker/cli/cli/command imports github.com/theupdateframework/notary/client tested by github.com/theupdateframework/notary/client.test imports github.com/theupdateframework/notary/server imports github.com/theupdateframework/notary/utils imports github.com/spf13/viper imports github.com/spf13/afero loaded from github.com/spf13/afero@v1.1.2, but go 1.16 would select v1.2.2 github.com/docker/cli/cli/command imports github.com/theupdateframework/notary/client tested by github.com/theupdateframework/notary/client.test imports github.com/theupdateframework/notary/server imports github.com/theupdateframework/notary/utils imports github.com/spf13/viper imports github.com/spf13/cast loaded from github.com/spf13/cast@v1.3.0, but go 1.16 would select v1.3.1 github.com/docker/cli/cli/command imports github.com/theupdateframework/notary/client tested by github.com/theupdateframework/notary/client.test imports github.com/theupdateframework/notary/server imports github.com/theupdateframework/notary/utils imports github.com/spf13/viper imports github.com/spf13/jwalterweatherman loaded from github.com/spf13/jwalterweatherman@v1.0.0, but go 1.16 would select v1.1.0 github.com/docker/cli/cli/command imports github.com/theupdateframework/notary/client tested by github.com/theupdateframework/notary/client.test imports github.com/theupdateframework/notary/server imports github.com/theupdateframework/notary/utils imports github.com/spf13/viper imports gopkg.in/ini.v1 loaded from gopkg.in/ini.v1@v1.51.0, but go 1.16 would select v1.56.0 github.com/docker/cli/cli/command imports github.com/theupdateframework/notary/client tested by github.com/theupdateframework/notary/client.test imports github.com/theupdateframework/notary/server imports github.com/theupdateframework/notary/utils imports github.com/spf13/viper imports github.com/spf13/afero imports github.com/spf13/afero/mem loaded from github.com/spf13/afero@v1.1.2, but go 1.16 would select v1.2.2 To upgrade to the versions selected by go 1.16: go mod tidy -go=1.16 && go mod tidy -go=1.17 If reproducibility with go 1.16 is not needed: go mod tidy -compat=1.17 For other options, see: https://golang.org/doc/modules/pruning Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-03-26 13:41:29 -04:00
(set -x ; go mod tidy -compat=1.17 -modfile=vendor.mod; go mod vendor -modfile=vendor.mod)
}
validate() {
diff=$(git status --porcelain -- vendor.mod vendor.sum vendor)
if [ -n "$diff" ]; then
echo >&2 'ERROR: Vendor result differs. Please vendor your package with "make -f docker.Makefile vendor"'
echo "$diff"
exit 1
fi
}
outdated() {
if [ ! -x "$(command -v go-mod-outdated)" ]; then
echo "go-mod-outdated not found. Install with 'go install github.com/psampaz/go-mod-outdated@v0.8.0'"
exit 1
fi
(set -x ; go list -mod=vendor -mod=readonly -modfile=vendor.mod -u -m -json all | go-mod-outdated -update -direct)
}
case $TYP in
"init")
init
;;
"update")
init
update
;;
"validate")
init
update
validate
;;
"outdated")
init
outdated
;;
*)
echo >&2 "Unknown type $TYP"
exit 1
;;
esac