1aef2f07d3
Signed-off-by: Matt Moyer <moyerm@vmware.com>
44 lines
1.3 KiB
Bash
Executable File
44 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Copyright 2020 VMware, Inc.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
set -euo pipefail
|
|
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
|
KUBE_VERSIONS=("$@")
|
|
|
|
GENERATED_DIR="${ROOT}/generated"
|
|
BACKUP_DIR="${GENERATED_DIR}.bak"
|
|
|
|
# Move the originally generated directory to a backup location
|
|
mv "${GENERATED_DIR}" "${BACKUP_DIR}"
|
|
mkdir "${GENERATED_DIR}"
|
|
|
|
# At exit (even on error), copy it back
|
|
cleanup() {
|
|
rm -r "${GENERATED_DIR}"
|
|
mv -f "${BACKUP_DIR}" "${GENERATED_DIR}"
|
|
}
|
|
trap "cleanup" EXIT SIGINT
|
|
|
|
# Run the code generation into a new empty `./generated` directory.
|
|
"${ROOT}/hack/lib/update-codegen.sh" "${KUBE_VERSIONS[@]}"
|
|
|
|
# Diff each of the chosen Kubernetes versions (but avoid comparing any other versions).
|
|
echo "diffing ${GENERATED_DIR} against freshly generated codegen"
|
|
ret=0
|
|
for kubeVersion in "${KUBE_VERSIONS[@]}"; do
|
|
kubeMinorVersion="$(echo "${kubeVersion}" | cut -d"." -f1-2)"
|
|
generatedVersionDir="${GENERATED_DIR}/${kubeMinorVersion}"
|
|
backupVersionDir="${BACKUP_DIR}/${kubeMinorVersion}"
|
|
diff -Naupr "${generatedVersionDir}" "${backupVersionDir}" || ret=$?
|
|
done
|
|
|
|
# If any of the versions differed, exit nonzero with an error message.
|
|
if [[ $ret -eq 0 ]]
|
|
then
|
|
echo "${GENERATED_DIR} up to date."
|
|
else
|
|
echo "${GENERATED_DIR} is out of date. Please run hack/update.sh"
|
|
exit 1
|
|
fi
|