Files
moby/hack/vendor.sh
Paweł Gronowski 1e56b87f7f hack/vendor: Make dropreplace vendor latest version
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-10-31 17:24:21 +01:00

76 lines
1.8 KiB
Bash
Executable File

#!/usr/bin/env bash
#
# This file is just a wrapper around the 'go mod vendor' tool.
# For updating dependencies you should change `go.mod` file in root of the
# project.
set -e
SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR="$(cd "$SCRIPTDIR/.." && pwd)"
# All module paths are relative to PROJECT_DIR
# Currently only a subset of modules are vendored.
vendor_modules_paths=(. man)
modules_paths=(api client "${vendor_modules_paths[@]}")
tidy() (
for module_path in "${modules_paths[@]}"; do
(
set -x
cd "$PROJECT_DIR/$module_path"
go mod tidy
)
done
)
vendor() (
for module_path in "${vendor_modules_paths[@]}"; do
(
set -x
cd "$PROJECT_DIR/$module_path"
go mod vendor
)
done
)
replace() (
set -x
go mod edit -replace=github.com/moby/moby/api=./api -replace=github.com/moby/moby/client=./client
go mod edit -modfile client/go.mod -replace=github.com/moby/moby/api=../api
)
dropreplace() (
set -x
go mod edit -dropreplace=github.com/moby/moby/api -dropreplace=github.com/moby/moby/client
go mod edit -modfile client/go.mod -dropreplace=github.com/moby/moby/api
go mod edit -modfile client/go.mod -require='github.com/moby/moby/api@master'
(cd client; go mod tidy)
go mod edit \
-require='github.com/moby/moby/api@master' \
-require='github.com/moby/moby/client@master'
go mod tidy
go mod vendor
)
help() {
printf "%s:\n" "$(basename "$0")"
echo " - tidy: run go mod tidy"
echo " - vendor: run go mod vendor"
echo " - replace: run go mod edit replace for local modules"
echo " - dropreplace: run go mod edit dropreplace for local modules"
echo " - all: run tidy && vendor"
echo " - help: show this help"
}
case "$1" in
tidy) tidy ;;
vendor) vendor ;;
replace) replace ;;
dropreplace) dropreplace ;;
""|all) tidy && vendor ;;
*) help ;;
esac