...
1#!/usr/bin/env bash
2
3# Copyright 2022 The Kubernetes Authors.
4#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9# http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16
17# This script generates go.work so that it includes all Go packages
18# in this repo, with a few exceptions.
19
20set -o errexit
21set -o nounset
22set -o pipefail
23
24# Go tools really don't like it if you have a symlink in `pwd`.
25cd "$(pwd -P)"
26
27KUBE_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
28source "${KUBE_ROOT}/hack/lib/init.sh"
29
30# This sets up the environment, like GOCACHE, which keeps the worktree cleaner.
31kube::golang::setup_env
32
33cd "${KUBE_ROOT}"
34
35# Ensure all modules are included in go.work
36go work edit -use .
37git ls-files -z ':(glob)./staging/src/k8s.io/*/go.mod' \
38 | xargs -0 -n1 dirname \
39 | tr '\n' '\0' \
40 | xargs -0 -n1 go work edit -use
41go mod download # generate go.work.sum
View as plain text