mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
325c3a457b
The hack/vendor.sh script is used to (re)vendor dependencies. However, it did not run `go mod tidy` before doing so, wheras the vendor _validation_ script did. This could result in vendor validation failing if go mod tidy resulted in changes (which could be in `vendor.sum`). In "usual" situations, this could be easily done by the user (`go mod tidy` before running `go mod vendor`), but due to our (curent) uses of `vendor.mod`, and having to first set up a (dummy) `go.mod`, this is more complicated. Instead, just make the script do this, so that `hack/vendor.sh` will always produce the expected result. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
28 lines
1 KiB
Bash
Executable file
28 lines
1 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
# This file is just wrapper around 'go mod vendor' tool.
|
|
# For updating dependencies you should change `vendor.mod` file in root of the
|
|
# project.
|
|
|
|
set -e
|
|
set -x
|
|
|
|
SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
"${SCRIPTDIR}"/go-mod-prepare.sh
|
|
|
|
if [ $# -eq 0 ] || [ "$1" != "archive/tar" ]; then
|
|
GO111MODULE=auto go mod tidy -modfile 'vendor.mod' -compat 1.17
|
|
GO111MODULE=auto go mod vendor -modfile vendor.mod
|
|
fi
|
|
|
|
if [ $# -eq 0 ] || [ "$1" = "archive/tar" ]; then
|
|
echo "update vendored copy of archive/tar"
|
|
: "${GO_VERSION:=$(awk -F '[ =]' '$1 == "ARG" && $2 == "GO_VERSION" { print $3; exit }' ./Dockerfile)}"
|
|
rm -rf vendor/archive/tar
|
|
mkdir -p vendor/archive/tar
|
|
echo "downloading: https://golang.org/dl/go${GO_VERSION%.0}.src.tar.gz"
|
|
curl -fsSL "https://golang.org/dl/go${GO_VERSION%.0}.src.tar.gz" \
|
|
| tar --extract --gzip --directory=vendor/archive/tar --strip-components=4 go/src/archive/tar
|
|
patch --strip=4 --directory=vendor/archive/tar --input="$PWD/patches/0001-archive-tar-do-not-populate-user-group-names.patch"
|
|
fi
|
|
|