Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -49,5 +49,5 @@ fastlane/test_output
vendor/swiftgen

# Other
openapi-generator/
openapi/GravatarOpenAPIClient/Sources/
Demo/Demo/Secrets.swift
55 changes: 24 additions & 31 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,16 @@
SWIFTFORMAT_CACHE = ~/Library/Caches/com.charcoaldesign.swiftformat

# The following values can be changed here, or passed on the command line.
OPENAPI_GENERATOR_GIT_URL ?= https://github.com/openapitools/openapi-generator
OPENAPI_GENERATOR_DOCKER_IMAGE ?= openapitools/openapi-generator-cli
OPENAPI_GENERATOR_GIT_TAG ?= v7.5.0
OPENAPI_GENERATOR_CLONE_DIR ?= $(CURRENT_MAKEFILE_DIR)/openapi-generator
OPENAPI_YAML_PATH ?= $(CURRENT_MAKEFILE_DIR)/openapi/spec.yaml
MODEL_TEMPLATE_PATH ?= $(CURRENT_MAKEFILE_DIR)/openapi
OUTPUT_DIRECTORY ?= $(CURRENT_MAKEFILE_DIR)/Sources/Gravatar/OpenApi/Generated

OPENAPI_PROJECT_NAME ?= GravatarOpenAPIClient
OPENAPI_REL_DIR ?= openapi
OPENAPI_DIR ?= $(CURRENT_MAKEFILE_DIR)/$(OPENAPI_REL_DIR)
OPENAPI_GENERATED_DIR ?= $(CURRENT_MAKEFILE_DIR)/openapi/$(OPENAPI_PROJECT_NAME)
OPENAPI_CLIENT_PROPERTIES ?= projectName=$(OPENAPI_PROJECT_NAME),useSPMFileStructure=true

# Derived values (don't change these).
CURRENT_MAKEFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
CURRENT_MAKEFILE_DIR := $(patsubst %/,%,$(dir $(CURRENT_MAKEFILE_PATH)))
Expand Down Expand Up @@ -108,20 +111,18 @@ install-and-generate: $(OPENAPI_GENERATOR_CLONE_DIR) # Clones and setup the open
"$(OPENAPI_GENERATOR_CLONE_DIR)"/run-in-docker.sh mvn package
make generate

generate: $(OUTPUT_DIRECTORY) # Generates the open-api model
cp "$(OPENAPI_YAML_PATH)" "$(OPENAPI_GENERATOR_CLONE_DIR)"/openapi.yaml
mkdir -p "$(OPENAPI_GENERATOR_CLONE_DIR)"/templates
cp "$(MODEL_TEMPLATE_PATH)"/*.mustache "$(OPENAPI_GENERATOR_CLONE_DIR)"/templates/
rm -rf "$(OPENAPI_GENERATOR_CLONE_DIR)"/generated/OpenAPIClient/Classes/OpenAPIs/Models/*
"$(OPENAPI_GENERATOR_CLONE_DIR)"/run-in-docker.sh generate -i openapi.yaml \
--global-property models \
-t templates \
-g swift5 \
-o ./generated \
-p packageName=Gravatar \
--additional-properties=useJsonEncodable=false,readonlyProperties=true && \
rsync -av --delete "$(OPENAPI_GENERATOR_CLONE_DIR)"/generated/OpenAPIClient/Classes/OpenAPIs/Models/ "$(OUTPUT_DIRECTORY)/" && \
make swiftformat && \
generate: $(OPENAPI_GENERATED_DIR) # Generates the open-api model
rm -rf "$(OPENAPI_GENERATED_DIR)"/* && \
docker run --rm \
-v $(OPENAPI_DIR):/local openapitools/openapi-generator-cli:"$(OPENAPI_GENERATOR_GIT_TAG)" generate \
-i /local/openapi.yaml \
-o /local/GravatarOpenAPIClient \
-t /local/templates \
-g swift5 \
-p packageName=Gravatar \
--additional-properties=useJsonEncodable=false,readonlyProperties=true,$(OPENAPI_CLIENT_PROPERTIES) && \
rsync -av --delete "$(OPENAPI_GENERATED_DIR)/Sources/$(OPENAPI_PROJECT_NAME)/Models/" "$(OUTPUT_DIRECTORY)/" && \
make swiftformat && \
echo "DONE! 🎉"

generate-strings: bundle-install
Expand All @@ -142,20 +143,12 @@ clean: # Clean everything, including the checkout of swift-openapi-generator.
dump: # Dump all derived values used by the Makefile.
@echo "CURRENT_MAKEFILE_PATH = $(CURRENT_MAKEFILE_PATH)"
@echo "CURRENT_MAKEFILE_DIR = $(CURRENT_MAKEFILE_DIR)"
@echo "OPENAPI_GENERATOR_GIT_URL = $(OPENAPI_GENERATOR_GIT_URL)"
@echo "OPENAPI_GENERATOR_DOCKER_IMAGE = $(OPENAPI_GENERATOR_DOCKER_IMAGE)"
@echo "OPENAPI_GENERATOR_GIT_TAG = $(OPENAPI_GENERATOR_GIT_TAG)"
@echo "OPENAPI_GENERATOR_CLONE_DIR = $(OPENAPI_GENERATOR_CLONE_DIR)"
@echo "OPENAPI_YAML_PATH = $(OPENAPI_YAML_PATH)"
@echo "OPENAPI_DIR = $(OPENAPI_DIR)"
@echo "OPENAPI_GENERATED_DIR = $(OPENAPI_GENERATED_DIR)"
@echo "OPENAPI_CLIENT_PROPERTIES = $(OPENAPI_CLIENT_PROPERTIES)"
@echo "OUTPUT_DIRECTORY = $(OUTPUT_DIRECTORY)"

$(OPENAPI_GENERATOR_CLONE_DIR):
git \
-c advice.detachedHead=false \
clone \
--branch "$(OPENAPI_GENERATOR_GIT_TAG)" \
--depth 1 \
"$(OPENAPI_GENERATOR_GIT_URL)" \
$@

$(OUTPUT_DIRECTORY):
$(OPENAPI_GENERATED_DIR):
mkdir -p "$@"
37 changes: 37 additions & 0 deletions openapi/GravatarOpenAPIClient/.openapi-generator-ignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# OpenAPI Generator Ignore
# Generated by openapi-generator https://github.com/openapitools/openapi-generator

# Use this file to prevent files from being overwritten by the generator.
# The patterns follow closely to .gitignore or .dockerignore.

# As an example, the C# client generator defines ApiClient.cs.
# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
#ApiClient.cs

# You can match any string of characters against a directory, file or extension with a single asterisk (*):
#foo/*/qux
# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux

# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
#foo/**/qux
# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux

# You can also negate patterns with an exclamation (!).
# For example, you can ignore all files in a docs folder with the file extension .md:
#docs/*.md
# Then explicitly reverse the ignore rule for a single file:
#!docs/README.md

.gitignore
.swiftformat
docs/
Cartfile
git_push.sh
GravatarOpenAPIClient.podspec
Package.swift
project.yml
README.md

# Skip all sources except 'Models'
Sources/GravatarOpenAPIClient/
!Sources/GravatarOpenAPIClient/Models/
13 changes: 13 additions & 0 deletions openapi/GravatarOpenAPIClient/.openapi-generator/FILES
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Sources/GravatarOpenAPIClient/Models/AssociatedResponse.swift
Sources/GravatarOpenAPIClient/Models/Avatar.swift
Sources/GravatarOpenAPIClient/Models/CryptoWalletAddress.swift
Sources/GravatarOpenAPIClient/Models/GalleryImage.swift
Sources/GravatarOpenAPIClient/Models/Interest.swift
Sources/GravatarOpenAPIClient/Models/Language.swift
Sources/GravatarOpenAPIClient/Models/Link.swift
Sources/GravatarOpenAPIClient/Models/ModelError.swift
Sources/GravatarOpenAPIClient/Models/Profile.swift
Sources/GravatarOpenAPIClient/Models/ProfileContactInfo.swift
Sources/GravatarOpenAPIClient/Models/ProfilePayments.swift
Sources/GravatarOpenAPIClient/Models/SetEmailAvatarRequest.swift
Sources/GravatarOpenAPIClient/Models/VerifiedAccount.swift
1 change: 1 addition & 0 deletions openapi/GravatarOpenAPIClient/.openapi-generator/VERSION
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
7.5.0
File renamed without changes.
File renamed without changes.
File renamed without changes.