From 6c947a519ce926ab9de6330d44435b5f393912a3 Mon Sep 17 00:00:00 2001 From: Jiri Kuncar Date: Tue, 11 Feb 2020 12:44:37 +0100 Subject: [PATCH 1/3] [go] Fix filenames with $GOOS and $GOARCH sufixes --- .../codegen/languages/AbstractGoCodegen.java | 31 ++++++++++++++----- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java index 89b47e36b10f..5dfa78144010 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java @@ -228,11 +228,28 @@ public String toModelName(String name) { return camelize(toModel(name)); } + protected boolean isReservedFilename(String name) { + String[] parts = name.split("_"); + String suffix = parts[parts.length - 1]; + + reservedSuffixes = new HashSet(Arrays.asList( + // Test + "test", + // $GOOS + "aix", "android", "darwin", "dragonfly", "freebsd", "illumos", "js", "linux", "netbsd", "openbsd", + "plan9", "solaris", "windows", + // $GOARCH + "386", "amd64", "arm", "arm64", "mips", "mips64", "mips64le", "mipsle", "ppc64", "ppc64le", "s390x", + "wasm")); + return name != null && reservedSuffixes.contains(name); + } + @Override public String toModelFilename(String name) { name = toModel("model_" + name); - if (name.endsWith("_test")) { - LOGGER.warn(name + ".go with `_test.go` suffix (reserved word) cannot be used as filename. Renamed to " + name + "_.go"); + + if (isReservedFilename(name)) { + LOGGER.warn(name + ".go with suffix (reserved word) cannot be used as filename. Renamed to " + name + "_.go"); name += "_"; } return name; @@ -279,8 +296,8 @@ public String toApiFilename(String name) { // e.g. PetApi.go => pet_api.go name = "api_" + underscore(name); - if (name.endsWith("_test")) { - LOGGER.warn(name + ".go with `_test.go` suffix (reserved word) cannot be used as filename. Renamed to " + name + "_.go"); + if (isReservedFilename(name)) { + LOGGER.warn(name + ".go with suffix (reserved word) cannot be used as filename. Renamed to " + name + "_.go"); name += "_"; } return name; @@ -341,10 +358,10 @@ public String getSchemaType(Schema p) { type = openAPIType; return type; } - + /** * Determines the golang instantiation type of the specified schema. - * + * * This function is called when the input schema is a map, and specifically * when the 'additionalProperties' attribute is present in the OAS specification. * Codegen invokes this function to resolve the "parent" association to @@ -354,7 +371,7 @@ public String getSchemaType(Schema p) { * - Indicate a polymorphic association with some other type (e.g. class inheritance). * - If the specification has a discriminator, cogegen create a “parent” based on the discriminator. * - Use of the 'additionalProperties' attribute in the OAS specification. - * This is the specific scenario when codegen invokes this function. + * This is the specific scenario when codegen invokes this function. * * @param property the input schema * From 3e5a0f8714dacc0ab944cb60da531aba995b3431 Mon Sep 17 00:00:00 2001 From: Jiri Kuncar Date: Tue, 11 Feb 2020 12:52:47 +0100 Subject: [PATCH 2/3] Too early commit --- .../org/openapitools/codegen/languages/AbstractGoCodegen.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java index 5dfa78144010..fedbc63931e0 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java @@ -232,7 +232,7 @@ protected boolean isReservedFilename(String name) { String[] parts = name.split("_"); String suffix = parts[parts.length - 1]; - reservedSuffixes = new HashSet(Arrays.asList( + Set reservedSuffixes = new HashSet(Arrays.asList( // Test "test", // $GOOS From 4f27a6a57b7fa0c62a619ae610ff151f0e5a052e Mon Sep 17 00:00:00 2001 From: Jiri Kuncar Date: Tue, 11 Feb 2020 12:59:21 +0100 Subject: [PATCH 3/3] Use suffix instead of name --- .../org/openapitools/codegen/languages/AbstractGoCodegen.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java index fedbc63931e0..9a113e32ed1e 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java @@ -241,7 +241,7 @@ protected boolean isReservedFilename(String name) { // $GOARCH "386", "amd64", "arm", "arm64", "mips", "mips64", "mips64le", "mipsle", "ppc64", "ppc64le", "s390x", "wasm")); - return name != null && reservedSuffixes.contains(name); + return reservedSuffixes.contains(suffix); } @Override