github.com/1aal/kubeblocks@v0.0.0-20231107070852-e1c03e598921/hack/client-sdk-gen.sh (about)

     1  #!/usr/bin/env bash
     2  #
     3  # Copyright (C) 2022-2023 ApeCloud Co., Ltd
     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  set -o errexit
    18  set -o nounset
    19  set -o pipefail
    20  
    21  SCRIPT_ROOT="$(cd "$(dirname $0)/../" && pwd -P)"
    22  
    23  if [ -d "${SCRIPT_ROOT}/vendor" ]; then
    24    export GOFLAGS="-mod=readonly"
    25  fi
    26  
    27  CODE_GENERATOR_PATH=$(go list -f '{{.Dir}}' -m k8s.io/code-generator)
    28  
    29  # HACK: add exec permission to code generator scripts
    30  chmod u+x ${CODE_GENERATOR_PATH}/*.sh
    31  
    32  GENERATORS="client,informer,lister"
    33  OUTPUT_PACKAGE="github.com/apecloud/kubeblocks/pkg/client"
    34  APIS_PACKAGE="github.com/apecloud/kubeblocks/apis"
    35  GROUP_VERSIONS="apps:v1alpha1 dataprotection:v1alpha1 extensions:v1alpha1 workloads:v1alpha1 storage:v1alpha1"
    36  OUTPUT_BASE="${SCRIPT_ROOT}/hack"
    37  
    38  
    39  bash ${CODE_GENERATOR_PATH}/generate-groups.sh \
    40    ${GENERATORS} \
    41    "${OUTPUT_PACKAGE}" \
    42    "${APIS_PACKAGE}" \
    43    "${GROUP_VERSIONS}" \
    44    --go-header-file "${SCRIPT_ROOT}/hack/boilerplate_apache2.go.txt" \
    45    --output-base "${OUTPUT_BASE}"
    46  
    47  rm -rf "${SCRIPT_ROOT}/pkg/client"
    48  mv "${OUTPUT_BASE}/${OUTPUT_PACKAGE}" "${SCRIPT_ROOT}/pkg/client"
    49  rm -rf "${OUTPUT_BASE}/github.com"
    50