cli/scripts/vendor

53 lines
987 B
Bash
Executable File

#!/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
update() {
(set -x ; go mod tidy -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. 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
"update")
update
;;
"validate")
update
validate
;;
"outdated")
outdated
;;
*)
echo >&2 "Unknown type $TYP"
exit 1
;;
esac