From f542c5acec503e3e0f713c973ddfc1741e192ce3 Mon Sep 17 00:00:00 2001
From: Florian Dreier <dreier.florian@gmail.com>
Date: Sat, 15 Oct 2022 16:33:33 +0200
Subject: [PATCH] Expose generateMetadata flag to control creation of VERSION,
 FILES and .openapi-generator-ignore metadata

---
 docs/global-properties.md                           |  1 +
 .../generator/gradle/plugin/tasks/GenerateTask.kt   | 13 +++++++++++++
 .../openapitools/codegen/plugin/CodeGenMojo.java    |  7 +++++++
 .../org/openapitools/codegen/CodegenConstants.java  |  1 +
 .../org/openapitools/codegen/DefaultGenerator.java  |  1 +
 5 files changed, 23 insertions(+)

diff --git a/docs/global-properties.md b/docs/global-properties.md
index c2c0aab6478..00268c2fd57 100644
--- a/docs/global-properties.md
+++ b/docs/global-properties.md
@@ -21,6 +21,7 @@ title: Global Properties
 | modelDocs | Allows the user to define if model docs will be generated. Prefer using the more robust `.openapi-generator-ignore`. | `true` or `false` |
 | apiTests | Allows the user to define if api tests will be generated. Prefer using the more robust `.openapi-generator-ignore`. | `true` or `false` |
 | modelTests | Allows the user to define if model tests will be generated. Prefer using the more robust `.openapi-generator-ignore`. | `true` or `false` |
+| generateMetadata | Allows the user to define if metadata files will be generated. | `true` or `false` |
 | withXml | Allows the user to control support of XML generated constructs, where supported | none |
 
 
diff --git a/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks/GenerateTask.kt b/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks/GenerateTask.kt
index 82fe7e761e8..827de2a9ee1 100644
--- a/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks/GenerateTask.kt
+++ b/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks/GenerateTask.kt
@@ -423,6 +423,15 @@ open class GenerateTask : DefaultTask() {
     @Input
     val generateApiDocumentation = project.objects.property<Boolean>()
 
+    /**
+     * Defines whether metadata files should be generated.
+     *
+     * This option enables/disables generation of VERSION, FILES and .openapi-generator-ignore files.
+     */
+    @Optional
+    @Input
+    val generateMetadata = project.objects.property<Boolean>()
+
     /**
      * A special-case setting which configures some generators with XML support. In some cases,
      * this forces json OR xml, so the default here is false.
@@ -548,6 +557,10 @@ open class GenerateTask : DefaultTask() {
                 GlobalSettings.setProperty(CodegenConstants.API_TESTS, generateApiTests.get().toString())
             }
 
+            if (generateMetadata.isPresent) {
+                GlobalSettings.setProperty(CodegenConstants.GENERATE_METADATA, generateMetadata.get().toString())
+            }
+
             if (withXml.isPresent) {
                 GlobalSettings.setProperty(CodegenConstants.WITH_XML, withXml.get().toString())
             }
diff --git a/modules/openapi-generator-maven-plugin/src/main/java/org/openapitools/codegen/plugin/CodeGenMojo.java b/modules/openapi-generator-maven-plugin/src/main/java/org/openapitools/codegen/plugin/CodeGenMojo.java
index f796ca6002a..8695b77b0c9 100644
--- a/modules/openapi-generator-maven-plugin/src/main/java/org/openapitools/codegen/plugin/CodeGenMojo.java
+++ b/modules/openapi-generator-maven-plugin/src/main/java/org/openapitools/codegen/plugin/CodeGenMojo.java
@@ -405,6 +405,12 @@ public class CodeGenMojo extends AbstractMojo {
     @Parameter(name = "generateApiDocumentation", property = "openapi.generator.maven.plugin.generateApiDocumentation")
     private Boolean generateApiDocumentation = true;
 
+    /**
+     * Generate the metadata files such as VERSION, FILES and .openapi-generator-ignore
+     */
+    @Parameter(name = "generateMetadata", property = "openapi.generator.maven.plugin.generateMetadata")
+    private Boolean generateMetadata = true;
+
     /**
      * Generate the api documentation
      */
@@ -667,6 +673,7 @@ public class CodeGenMojo extends AbstractMojo {
             GlobalSettings.setProperty(CodegenConstants.MODEL_DOCS, generateModelDocumentation.toString());
             GlobalSettings.setProperty(CodegenConstants.API_TESTS, generateApiTests.toString());
             GlobalSettings.setProperty(CodegenConstants.API_DOCS, generateApiDocumentation.toString());
+            GlobalSettings.setProperty(CodegenConstants.GENERATE_METADATA, generateMetadata.toString());
             GlobalSettings.setProperty(CodegenConstants.WITH_XML, withXml.toString());
 
             if (configOptions != null) {
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConstants.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConstants.java
index 2ee0c5474f8..047ee15b299 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConstants.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConstants.java
@@ -30,6 +30,7 @@ public class CodegenConstants {
     public static final String MODEL_DOCS = "modelDocs";
     public static final String API_TESTS = "apiTests";
     public static final String API_DOCS = "apiDocs";
+    public static final String GENERATE_METADATA = "generateMetadata";
 
     public static final String WITH_XML = "withXml";
     public static final String SKIP_FORM_MODEL = "skipFormModel";
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java
index 2da1e53f84e..bd69d773c87 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java
@@ -208,6 +208,7 @@ public class DefaultGenerator implements Generator {
         generateApis = GlobalSettings.getProperty(CodegenConstants.APIS) != null ? Boolean.TRUE : getGeneratorPropertyDefaultSwitch(CodegenConstants.APIS, null);
         generateModels = GlobalSettings.getProperty(CodegenConstants.MODELS) != null ? Boolean.TRUE : getGeneratorPropertyDefaultSwitch(CodegenConstants.MODELS, null);
         generateSupportingFiles = GlobalSettings.getProperty(CodegenConstants.SUPPORTING_FILES) != null ? Boolean.TRUE : getGeneratorPropertyDefaultSwitch(CodegenConstants.SUPPORTING_FILES, null);
+        generateMetadata = GlobalSettings.getProperty(CodegenConstants.GENERATE_METADATA) != null ? Boolean.TRUE : getGeneratorPropertyDefaultSwitch(CodegenConstants.GENERATE_METADATA, this.generateMetadata);
 
         if (generateApis == null && generateModels == null && generateSupportingFiles == null) {
             // no specifics are set, generate everything
-- 
GitLab