hack/verify-generated-deep-copies.sh
c3994032
 #!/bin/bash
 
6daa7f71
 set -o errexit
c3994032
 set -o nounset
 set -o pipefail
 
 OS_ROOT=$(dirname "${BASH_SOURCE}")/..
 source "${OS_ROOT}/hack/common.sh"
 
 cd "${OS_ROOT}"
 
43ad12ae
 echo "===== Verifying Generated Conversions ====="
 echo "Building gendeepcopy binary..."
54fca663
 if ! buildout=`"${OS_ROOT}/hack/build-go.sh" tools/gendeepcopy 2>&1`
43ad12ae
 then
   echo "FAILURE: Building gendeepcopy binary failed:"
   echo "$buildout"
   exit 1
 else
   echo "$buildout" | sed 's/^/   /'
 fi
 
749428c4
 gendeepcopy="$(os::build::find-binary gendeepcopy)"
43ad12ae
 
 echo "   Verifying gendeepcopy binary..."
 if [[ ! -x "$gendeepcopy" ]]; then
c3994032
   {
43ad12ae
     echo "FAILURE: It looks as if you don't have a compiled conversion binary."
     echo "If you are running from a clone of the git repo, please run:"
54fca663
     echo "'./hack/build-go.sh tools/gendeepcopy'."
c3994032
   } >&2
   exit 1
 fi
 
43ad12ae
 APIROOT_REL="pkg/api"
 APIROOT="${OS_ROOT}/${APIROOT_REL}"
f9a9c357
 TMP_APIROOT_REL="_output/verify-generated-deep-copies"
43ad12ae
 TMP_APIROOT="${OS_ROOT}/${TMP_APIROOT_REL}/${APIROOT_REL}"
 
 echo "Generating fresh deep copies..."
 if ! output=`${OS_ROOT}/hack/update-generated-deep-copies.sh ${TMP_APIROOT_REL} 2>&1`
 then
   echo "FAILURE: Generating fresh deep copies failed:"
   echo "$output"
   exit 1
 fi
c3994032
 
f9a9c357
 rsync -au "${APIROOT}" "${TMP_APIROOT}/.."
c3994032
 
43ad12ae
 echo "Diffing current deep copies against freshly generated deep copies..."
c3994032
 ret=0
43ad12ae
 diff -Nauprq -I 'Auto generated by' "${APIROOT}" "${TMP_APIROOT}" || ret=$?
 rm -rf "${TMP_APIROOT}"
c3994032
 if [[ $ret -eq 0 ]]
 then
43ad12ae
   echo "SUCCESS: Current deep copies up to date."
c3994032
 else
43ad12ae
   echo "FAILURE: Current deep copies out of date. Please run hack/update-generated-deep-copies.sh"
c3994032
   exit 1
 fi
 
 # ex: ts=2 sw=2 et filetype=sh