From 2d98944976736fc3fb216acadfb7b59e984f4582 Mon Sep 17 00:00:00 2001 From: Ivan Smolin Date: Fri, 25 Mar 2022 21:14:54 +0300 Subject: [PATCH 1/2] fix codegen project name parameter; manage codegen folders for convenience --- xcode/build_phases/api_generator.sh | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/xcode/build_phases/api_generator.sh b/xcode/build_phases/api_generator.sh index aa3e156..ddf1c3b 100755 --- a/xcode/build_phases/api_generator.sh +++ b/xcode/build_phases/api_generator.sh @@ -7,6 +7,9 @@ # $1 - api generator version. # $2 - path to generated code directory # +# Required environment variables: +# SRCROOT - path to project folder. +# # Optional environment variables: # OUTPUT_PATH - path to Generated folder. # API_SPEC_DIR - path to api specification folder @@ -162,7 +165,15 @@ openapi_codegen() . build-scripts/xcode/aux_scripts/download_file.sh ${TINETWORKING_CODEGEN_FILE_NAME} ${DOWNLOAD_URL} - java -cp "Downloads/${CODEGEN_FILE_NAME}:Downloads/${TINETWORKING_CODEGEN_FILE_NAME}" io.swagger.codegen.v3.cli.SwaggerCodegen generate -l TINetworking -i ${YAML_FILE} -o ${OUTPUT_PATH} --additional-properties projectName:${API_NAME} + rm -rf ${OUTPUT_PATH}/${API_NAME} # remove previously generated API (if exists) + + java -cp "Downloads/${CODEGEN_FILE_NAME}:Downloads/${TINETWORKING_CODEGEN_FILE_NAME}" io.swagger.codegen.v3.cli.SwaggerCodegen generate -l TINetworking -i ${YAML_FILE} -o ${OUTPUT_PATH} --additional-properties projectName=${API_NAME} + + # flatten folders hierarchy + + mv ${OUTPUT_PATH}/${API_NAME}/Classes/Swaggers/* ${OUTPUT_PATH}/${API_NAME}/ + + rm -rf ${OUTPUT_PATH}/${API_NAME}/Classes } api_generator_codegen() From 57dbcee506ae2c43554139acdd86366944eb0b5f Mon Sep 17 00:00:00 2001 From: Ivan Smolin Date: Tue, 29 Mar 2022 20:27:37 +0300 Subject: [PATCH 2/2] fix api-generator default spec folder path --- xcode/build_phases/api_generator.sh | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/xcode/build_phases/api_generator.sh b/xcode/build_phases/api_generator.sh index ddf1c3b..add9f89 100755 --- a/xcode/build_phases/api_generator.sh +++ b/xcode/build_phases/api_generator.sh @@ -119,11 +119,11 @@ record_current_commit() openapi_codegen() { - if [ -z "${YAML_FILE}" ]; then + if [ -z "${OPEN_API_SPEC_PATH}" ]; then if [ ! -v "${1}" ]; then - local -r YAML_FILE=${1} + local -r OPEN_API_SPEC_PATH=${1} else - debug "YAML_FILE should be defined or passed as first argument!" + debug "OPEN_API_SPEC_PATH should be defined or passed as first argument!" return ${EXIT_FAILURE} fi fi @@ -150,7 +150,7 @@ openapi_codegen() local -r API_NAME="${PROJECT_NAME}API" fi - notice "OpenAPI spec generation for ${YAML_FILE}" + notice "OpenAPI spec generation for ${OPEN_API_SPEC_PATH}" local -r CODEGEN_VERSION="3.0.33" @@ -167,7 +167,7 @@ openapi_codegen() rm -rf ${OUTPUT_PATH}/${API_NAME} # remove previously generated API (if exists) - java -cp "Downloads/${CODEGEN_FILE_NAME}:Downloads/${TINETWORKING_CODEGEN_FILE_NAME}" io.swagger.codegen.v3.cli.SwaggerCodegen generate -l TINetworking -i ${YAML_FILE} -o ${OUTPUT_PATH} --additional-properties projectName=${API_NAME} + java -cp "Downloads/${CODEGEN_FILE_NAME}:Downloads/${TINETWORKING_CODEGEN_FILE_NAME}" io.swagger.codegen.v3.cli.SwaggerCodegen generate -l TINetworking -i ${OPEN_API_SPEC_PATH} -o ${OUTPUT_PATH} --additional-properties projectName=${API_NAME} # flatten folders hierarchy @@ -237,18 +237,19 @@ if [ -z "${OUTPUT_PATH}" ]; then fi if [ -z "${API_SPEC_DIR}" ]; then - readonly API_SPEC_DIR="common" + readonly API_SPEC_DIR="common/api" fi mkdir -p ${OUTPUT_PATH} -readonly YAML_FILE=`find ${API_SPEC_DIR} -maxdepth 1 -name '*.yaml' -o -name '*.yml' | head -n 1` +readonly OPEN_API_SPEC_PATH=`find ${API_SPEC_DIR} -maxdepth 1 -name '*.yaml' -o -name '*.yml' | head -n 1` -if [ -f "${YAML_FILE}" ]; then +if [ -f "${OPEN_API_SPEC_PATH}" ]; then openapi_codegen elif [ -f "${API_SPEC_DIR}/main.json" ]; then api_generator_codegen else + notice "No api spec found!" exit ${EXIT_FAILURE} fi