Skip to content

Commit 4842cb6

Browse files
committed
Make verify-api-groups.sh not depend on GOPATH
This script quiently depended on being under a GOPATH, and failed completely when it was not. This change sorts the input (to make comparing results easier) and operates on files, rather than packages until the last moment when we add back the package prefix. Verified by instrumenting the code and comparing runs inside and outside of GOPATH.
1 parent 19d2200 commit 4842cb6

File tree

1 file changed

+7
-9
lines changed

1 file changed

+7
-9
lines changed

hack/verify-api-groups.sh

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,11 @@ set -o pipefail
2323

2424
KUBE_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
2525
source "${KUBE_ROOT}/hack/lib/init.sh"
26-
prefix="${KUBE_ROOT%"k8s.io/kubernetes"}"
2726

2827
register_files=()
29-
while IFS= read -d $'\0' -r file ; do
28+
while read -r file ; do
3029
register_files+=("${file}")
31-
done < <(find "${KUBE_ROOT}"/pkg/apis -name register.go -print0)
30+
done < <(find pkg/apis -name register.go | sort)
3231

3332
# every register file should contain a GroupName. Gather the different representations.
3433
# 1. group directory name for client gen
@@ -38,9 +37,8 @@ group_dirnames=()
3837
external_group_versions=()
3938
expected_install_packages=()
4039
for register_file in "${register_files[@]}"; do
41-
package="${register_file#"${prefix}"}"
42-
package="${package%"/register.go"}"
43-
group_dirname="${package#"k8s.io/kubernetes/pkg/apis/"}"
40+
package="${register_file%"/register.go"}"
41+
group_dirname="${package#"pkg/apis/"}"
4442
group_dirname="${group_dirname%%"/*"}"
4543
group_name=""
4644
if grep -q 'GroupName = "' "${register_file}"; then
@@ -50,11 +48,11 @@ for register_file in "${register_files[@]}"; do
5048
exit 1
5149
fi
5250

53-
# does the dirname doesn't have a slash, then it's the internal package.
54-
# if does have one, then its an external
51+
# If the dirname doesn't have a slash, then it's the internal package.
52+
# if does have one, then it's versioned (e.g. foobar/v1).
5553
if [[ "${group_dirname#*'/'}" == "${group_dirname}" ]]; then
5654
group_dirnames+=("${group_dirname}")
57-
expected_install_packages+=("${package}")
55+
expected_install_packages+=("k8s.io/kubernetes/${package}")
5856
else
5957
version=$(echo "${group_dirname}" | cut -d/ -f2 -)
6058
external_group_versions+=("${group_name}/${version}")

0 commit comments

Comments
 (0)