github.com/ironcore-dev/gardener-extension-provider-ironcore@v0.3.2-0.20240314231816-8336447fb9a0/hack/update-codegen.sh (about) 1 #!/usr/bin/env bash 2 3 set -o errexit 4 set -o nounset 5 set -o pipefail 6 7 BASE_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" 8 export TERM="xterm-256color" 9 10 VGOPATH="$VGOPATH" 11 DEEPCOPY_GEN="$DEEPCOPY_GEN" 12 DEFAULTER_GEN="$DEFAULTER_GEN" 13 CONVERSION_GEN="$CONVERSION_GEN" 14 15 bold="$(tput bold)" 16 blue="$(tput setaf 4)" 17 normal="$(tput sgr0)" 18 19 function qualify-gvs() { 20 APIS_PKG="$1" 21 GROUPS_WITH_VERSIONS="$2" 22 join_char="" 23 res="" 24 25 for GVs in ${GROUPS_WITH_VERSIONS}; do 26 IFS=: read -r G Vs <<<"${GVs}" 27 28 for V in ${Vs//,/ }; do 29 res="$res$join_char$APIS_PKG/$G/$V" 30 join_char="," 31 done 32 done 33 34 echo "$res" 35 } 36 37 function qualify-gs() { 38 APIS_PKG="$1" 39 unset GROUPS 40 IFS=' ' read -ra GROUPS <<< "$2" 41 join_char="" 42 res="" 43 44 for G in "${GROUPS[@]}"; do 45 res="$res$join_char$APIS_PKG/$G" 46 join_char="," 47 done 48 49 echo "$res" 50 } 51 52 # setup virtual GOPATH 53 source "$GARDENER_HACK_DIR"/vgopath-setup.sh 54 55 # We need to explicitly pass GO111MODULE=off to k8s.io/code-generator as it is significantly slower otherwise, 56 # see https://github.com/kubernetes/code-generator/issues/100. 57 export GO111MODULE=off 58 59 echo "${bold}Public types${normal}" 60 61 echo "Generating ${blue}deepcopy${normal}" 62 "$DEEPCOPY_GEN" \ 63 --go-header-file "$BASE_DIR/boilerplate.go.txt" \ 64 --input-dirs "$(qualify-gvs "github.com/ironcore-dev/gardener-extension-provider-ironcore/pkg/apis" "config:v1alpha1 ironcore:v1alpha1")" \ 65 -O zz_generated.deepcopy 66 67 echo "${bold}Internal types${normal}" 68 69 echo "Generating ${blue}deepcopy${normal}" 70 "$DEEPCOPY_GEN" \ 71 --go-header-file "$BASE_DIR/boilerplate.go.txt" \ 72 --input-dirs "$(qualify-gs "github.com/ironcore-dev/gardener-extension-provider-ironcore/pkg/apis" "config ironcore")" \ 73 -O zz_generated.deepcopy 74 75 echo "Generating ${blue}defaulter${normal}" 76 "$DEFAULTER_GEN" \ 77 --go-header-file "$BASE_DIR/boilerplate.go.txt" \ 78 --input-dirs "$(qualify-gvs "github.com/ironcore-dev/gardener-extension-provider-ironcore/pkg/apis" "config:v1alpha1 ironcore:v1alpha1")" \ 79 -O zz_generated.defaults 80 81 echo "Generating ${blue}conversion${normal}" 82 "$CONVERSION_GEN" \ 83 --go-header-file "$BASE_DIR/boilerplate.go.txt" \ 84 --input-dirs "$(qualify-gs "github.com/ironcore-dev/gardener-extension-provider-ironcore/pkg/apis" "config ironcore")" \ 85 --input-dirs "$(qualify-gvs "github.com/ironcore-dev/gardener-extension-provider-ironcore/pkg/apis" "config:v1alpha1 ironcore:v1alpha1")" \ 86 -O zz_generated.conversion