mirror of
https://github.com/vmware-tanzu/pinniped.git
synced 2026-07-23 16:42:43 +00:00
57 lines
1.7 KiB
Bash
Executable File
57 lines
1.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Copyright 2023-2026 the Pinniped contributors. All Rights Reserved.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
|
|
ROOT_DIR="$SCRIPT_DIR/../.."
|
|
|
|
GO_MOD="${ROOT_DIR}/go.mod"
|
|
|
|
echo "Updating $GO_MOD ..."
|
|
|
|
pushd "${SCRIPT_DIR}" >/dev/null
|
|
script=$(go run . "${GO_MOD}" overrides.conf)
|
|
popd >/dev/null
|
|
|
|
# Print to screen for debugging purposes.
|
|
echo "$script"
|
|
|
|
pushd "${ROOT_DIR}" >/dev/null
|
|
eval "$script"
|
|
popd >/dev/null
|
|
|
|
# Next update the go.mod of update-go-mod itself.
|
|
echo "Updating $SCRIPT_DIR/go.mod ..."
|
|
|
|
pushd "${SCRIPT_DIR}" >/dev/null
|
|
go get "golang.org/x/mod@latest"
|
|
go mod tidy
|
|
popd >/dev/null
|
|
|
|
# This script assumes that you are using the latest version of Go so it can detect its
|
|
# version and update all the go.mod files to use that version.
|
|
go_version="$(go version | cut -d ' ' -f3 | sed 's/^go//')"
|
|
echo "Using Go version $go_version to update toolchain directives in go.mod files..."
|
|
|
|
pushd "${ROOT_DIR}" >/dev/null
|
|
# Find all go.mod files that include a toolchain directive.
|
|
# Note that grep will fail with exist code 1 when no results are found, so ignore that specific exit code.
|
|
set +e
|
|
mods=$(grep -E -l '^toolchain ' $(find . -name go.mod))
|
|
if [ $? -eq 1 ]; then
|
|
echo "No toolchain directives found."
|
|
exit 0
|
|
fi
|
|
set -e
|
|
while IFS= read -r gomod_file; do
|
|
pushd "$(dirname "$gomod_file")" >/dev/null
|
|
echo "Updating toolchain in $gomod_file"
|
|
# Also update toolchain directive in go.mod to match the version of Go used by this job.
|
|
go get toolchain@"$(go version | cut -d ' ' -f3 | sed 's/^go//')"
|
|
popd >/dev/null
|
|
done < <(echo "$mods")
|
|
popd >/dev/null
|