forked from loafle/openapi-generator-original
[cli][gradle] filter deprecated generators by default when listing available generators (#3612)
* Filter deprecated generators from CLI list by default. * [gradle] Exclude deprecated generators from list by default, add "include" option to allow for customization of list task. * Update scripts to support the --include option of the list command * Update gradle/cli docs for generators listing with "include" option.
This commit is contained in:
parent
4a92cd8dca
commit
a5349cfde5
@ -61,7 +61,6 @@ declare -a scripts=(
|
|||||||
"./bin/meta-codegen.sh"
|
"./bin/meta-codegen.sh"
|
||||||
# OTHERS
|
# OTHERS
|
||||||
"./bin/utils/export_docs_generators.sh"
|
"./bin/utils/export_docs_generators.sh"
|
||||||
"./bin/utils/export_generators_docusaurus_index.sh"
|
|
||||||
"./bin/utils/copy-to-website.sh"
|
"./bin/utils/copy-to-website.sh"
|
||||||
"./bin/utils/export_generators_readme.sh")
|
"./bin/utils/export_generators_readme.sh")
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ echo "# START SCRIPT: ${SCRIPT}"
|
|||||||
|
|
||||||
executable="./modules/openapi-generator-cli/target/openapi-generator-cli.jar"
|
executable="./modules/openapi-generator-cli/target/openapi-generator-cli.jar"
|
||||||
|
|
||||||
for GENERATOR in $(java -jar ${executable} list --short | sed -e 's/,/\'$'\n''/g')
|
for GENERATOR in $(java -jar ${executable} list --short --include all | sed -e 's/,/\'$'\n''/g')
|
||||||
do
|
do
|
||||||
./bin/utils/export_generator.sh ${GENERATOR}
|
./bin/utils/export_generator.sh ${GENERATOR}
|
||||||
done
|
done
|
||||||
|
@ -1,20 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
SCRIPT="$0"
|
|
||||||
echo "# START SCRIPT: $SCRIPT"
|
|
||||||
|
|
||||||
executable="./modules/openapi-generator-cli/target/openapi-generator-cli.jar"
|
|
||||||
|
|
||||||
\rm -rf docs/generators.md
|
|
||||||
|
|
||||||
cat > docs/generators.md << EOF
|
|
||||||
---
|
|
||||||
id: generators
|
|
||||||
title: Generators List
|
|
||||||
---
|
|
||||||
|
|
||||||
EOF
|
|
||||||
|
|
||||||
java -jar $executable list --docsite >> docs/generators.md
|
|
||||||
|
|
||||||
echo "Wrote $(pwd)/docs/generators.md"
|
|
@ -15,6 +15,6 @@ title: Generators List
|
|||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
java -jar $executable list | sed -e 's/\([A-Z]*\) generators:/* \1 generators:/g' -e 's/- \([a-z0-9\-]*\)/- [\1]\(generators\/\1.md\)/g' >> docs/generators.md
|
java -jar $executable list --docsite --include all >> docs/generators.md
|
||||||
|
|
||||||
echo "Wrote $(pwd)/docs/generators.md"
|
echo "Wrote $(pwd)/docs/generators.md"
|
||||||
|
@ -5,132 +5,132 @@ title: Generators List
|
|||||||
|
|
||||||
The following generators are available:
|
The following generators are available:
|
||||||
|
|
||||||
* CLIENT generators:
|
## CLIENT generators
|
||||||
- [ada](generators/ada.md)
|
* [ada](generators/ada)
|
||||||
- [android](generators/android.md)
|
* [android](generators/android)
|
||||||
- [apex](generators/apex.md)
|
* [apex](generators/apex)
|
||||||
- [bash](generators/bash.md)
|
* [bash](generators/bash)
|
||||||
- [c](generators/c.md)
|
* [c](generators/c)
|
||||||
- [clojure](generators/clojure.md)
|
* [clojure](generators/clojure)
|
||||||
- [cpp-qt5-client](generators/cpp-qt5-client.md)
|
* [cpp-qt5-client](generators/cpp-qt5-client)
|
||||||
- [cpp-restsdk](generators/cpp-restsdk.md)
|
* [cpp-restsdk](generators/cpp-restsdk)
|
||||||
- [cpp-tizen](generators/cpp-tizen.md)
|
* [cpp-tizen](generators/cpp-tizen)
|
||||||
- [csharp](generators/csharp.md)
|
* [csharp](generators/csharp)
|
||||||
- [csharp-dotnet2](generators/csharp-dotnet2.md) (deprecated)
|
* [csharp-dotnet2 (deprecated)](generators/csharp-dotnet2)
|
||||||
- [csharp-netcore](generators/csharp-netcore.md)
|
* [csharp-netcore](generators/csharp-netcore)
|
||||||
- [dart](generators/dart.md)
|
* [dart](generators/dart)
|
||||||
- [dart-jaguar](generators/dart-jaguar.md)
|
* [dart-jaguar](generators/dart-jaguar)
|
||||||
- [eiffel](generators/eiffel.md)
|
* [eiffel](generators/eiffel)
|
||||||
- [elixir](generators/elixir.md)
|
* [elixir](generators/elixir)
|
||||||
- [elm](generators/elm.md)
|
* [elm](generators/elm)
|
||||||
- [erlang-client](generators/erlang-client.md)
|
* [erlang-client](generators/erlang-client)
|
||||||
- [erlang-proper](generators/erlang-proper.md)
|
* [erlang-proper](generators/erlang-proper)
|
||||||
- [flash](generators/flash.md)
|
* [flash](generators/flash)
|
||||||
- [go](generators/go.md)
|
* [go](generators/go)
|
||||||
- [go-experimental](generators/go-experimental.md)
|
* [go-experimental (experimental)](generators/go-experimental)
|
||||||
- [groovy](generators/groovy.md)
|
* [groovy](generators/groovy)
|
||||||
- [haskell-http-client](generators/haskell-http-client.md)
|
* [haskell-http-client](generators/haskell-http-client)
|
||||||
- [java](generators/java.md)
|
* [java](generators/java)
|
||||||
- [javascript](generators/javascript.md)
|
* [javascript](generators/javascript)
|
||||||
- [javascript-closure-angular](generators/javascript-closure-angular.md)
|
* [javascript-closure-angular](generators/javascript-closure-angular)
|
||||||
- [javascript-flowtyped](generators/javascript-flowtyped.md)
|
* [javascript-flowtyped](generators/javascript-flowtyped)
|
||||||
- [jaxrs-cxf-client](generators/jaxrs-cxf-client.md)
|
* [jaxrs-cxf-client](generators/jaxrs-cxf-client)
|
||||||
- [jmeter](generators/jmeter.md)
|
* [jmeter](generators/jmeter)
|
||||||
- [kotlin](generators/kotlin.md)
|
* [kotlin](generators/kotlin)
|
||||||
- [lua](generators/lua.md)
|
* [lua](generators/lua)
|
||||||
- [objc](generators/objc.md)
|
* [objc](generators/objc)
|
||||||
- [ocaml](generators/ocaml.md)
|
* [ocaml](generators/ocaml)
|
||||||
- [perl](generators/perl.md)
|
* [perl](generators/perl)
|
||||||
- [php](generators/php.md)
|
* [php](generators/php)
|
||||||
- [powershell](generators/powershell.md)
|
* [powershell](generators/powershell)
|
||||||
- [python](generators/python.md)
|
* [python](generators/python)
|
||||||
- [python-experimental](generators/python-experimental.md)
|
* [python-experimental (experimental)](generators/python-experimental)
|
||||||
- [r](generators/r.md)
|
* [r](generators/r)
|
||||||
- [ruby](generators/ruby.md)
|
* [ruby](generators/ruby)
|
||||||
- [rust](generators/rust.md)
|
* [rust](generators/rust)
|
||||||
- [scala-akka](generators/scala-akka.md)
|
* [scala-akka](generators/scala-akka)
|
||||||
- [scala-gatling](generators/scala-gatling.md)
|
* [scala-gatling](generators/scala-gatling)
|
||||||
- [scala-httpclient-deprecated](generators/scala-httpclient-deprecated.md) (deprecated)
|
* [scala-httpclient-deprecated (deprecated)](generators/scala-httpclient-deprecated)
|
||||||
- [scalaz](generators/scalaz.md)
|
* [scalaz](generators/scalaz)
|
||||||
- [swift2-deprecated](generators/swift2-deprecated.md) (deprecated)
|
* [swift2-deprecated (deprecated)](generators/swift2-deprecated)
|
||||||
- [swift3-deprecated](generators/swift3-deprecated.md) (deprecated)
|
* [swift3-deprecated (deprecated)](generators/swift3-deprecated)
|
||||||
- [swift4](generators/swift4.md)
|
* [swift4](generators/swift4)
|
||||||
- [typescript-angular](generators/typescript-angular.md)
|
* [typescript-angular](generators/typescript-angular)
|
||||||
- [typescript-angularjs](generators/typescript-angularjs.md)
|
* [typescript-angularjs](generators/typescript-angularjs)
|
||||||
- [typescript-aurelia](generators/typescript-aurelia.md)
|
* [typescript-aurelia](generators/typescript-aurelia)
|
||||||
- [typescript-axios](generators/typescript-axios.md)
|
* [typescript-axios](generators/typescript-axios)
|
||||||
- [typescript-fetch](generators/typescript-fetch.md)
|
* [typescript-fetch](generators/typescript-fetch)
|
||||||
- [typescript-inversify](generators/typescript-inversify.md)
|
* [typescript-inversify](generators/typescript-inversify)
|
||||||
- [typescript-jquery](generators/typescript-jquery.md)
|
* [typescript-jquery](generators/typescript-jquery)
|
||||||
- [typescript-node](generators/typescript-node.md)
|
* [typescript-node](generators/typescript-node)
|
||||||
- [typescript-rxjs](generators/typescript-rxjs.md)
|
* [typescript-rxjs](generators/typescript-rxjs)
|
||||||
|
|
||||||
|
|
||||||
* SERVER generators:
|
## SERVER generators
|
||||||
- [ada-server](generators/ada-server.md)
|
* [ada-server](generators/ada-server)
|
||||||
- [aspnetcore](generators/aspnetcore.md)
|
* [aspnetcore](generators/aspnetcore)
|
||||||
- [cpp-pistache-server](generators/cpp-pistache-server.md)
|
* [cpp-pistache-server](generators/cpp-pistache-server)
|
||||||
- [cpp-qt5-qhttpengine-server](generators/cpp-qt5-qhttpengine-server.md)
|
* [cpp-qt5-qhttpengine-server](generators/cpp-qt5-qhttpengine-server)
|
||||||
- [cpp-restbed-server](generators/cpp-restbed-server.md)
|
* [cpp-restbed-server](generators/cpp-restbed-server)
|
||||||
- [csharp-nancyfx](generators/csharp-nancyfx.md)
|
* [csharp-nancyfx](generators/csharp-nancyfx)
|
||||||
- [erlang-server](generators/erlang-server.md)
|
* [erlang-server](generators/erlang-server)
|
||||||
- [fsharp-giraffe-server](generators/fsharp-giraffe-server.md)
|
* [fsharp-giraffe-server](generators/fsharp-giraffe-server)
|
||||||
- [go-gin-server](generators/go-gin-server.md)
|
* [go-gin-server](generators/go-gin-server)
|
||||||
- [go-server](generators/go-server.md)
|
* [go-server](generators/go-server)
|
||||||
- [graphql-nodejs-express-server](generators/graphql-nodejs-express-server.md)
|
* [graphql-nodejs-express-server](generators/graphql-nodejs-express-server)
|
||||||
- [haskell](generators/haskell.md)
|
* [haskell](generators/haskell)
|
||||||
- [java-inflector](generators/java-inflector.md)
|
* [java-inflector](generators/java-inflector)
|
||||||
- [java-msf4j](generators/java-msf4j.md)
|
* [java-msf4j](generators/java-msf4j)
|
||||||
- [java-pkmst](generators/java-pkmst.md)
|
* [java-pkmst](generators/java-pkmst)
|
||||||
- [java-play-framework](generators/java-play-framework.md)
|
* [java-play-framework](generators/java-play-framework)
|
||||||
- [java-undertow-server](generators/java-undertow-server.md)
|
* [java-undertow-server](generators/java-undertow-server)
|
||||||
- [java-vertx](generators/java-vertx.md)
|
* [java-vertx](generators/java-vertx)
|
||||||
- [jaxrs-cxf](generators/jaxrs-cxf.md)
|
* [jaxrs-cxf](generators/jaxrs-cxf)
|
||||||
- [jaxrs-cxf-cdi](generators/jaxrs-cxf-cdi.md)
|
* [jaxrs-cxf-cdi](generators/jaxrs-cxf-cdi)
|
||||||
- [jaxrs-cxf-extended](generators/jaxrs-cxf-extended.md)
|
* [jaxrs-cxf-extended](generators/jaxrs-cxf-extended)
|
||||||
- [jaxrs-jersey](generators/jaxrs-jersey.md)
|
* [jaxrs-jersey](generators/jaxrs-jersey)
|
||||||
- [jaxrs-resteasy](generators/jaxrs-resteasy.md)
|
* [jaxrs-resteasy](generators/jaxrs-resteasy)
|
||||||
- [jaxrs-resteasy-eap](generators/jaxrs-resteasy-eap.md)
|
* [jaxrs-resteasy-eap](generators/jaxrs-resteasy-eap)
|
||||||
- [jaxrs-spec](generators/jaxrs-spec.md)
|
* [jaxrs-spec](generators/jaxrs-spec)
|
||||||
- [kotlin-server](generators/kotlin-server.md)
|
* [kotlin-server](generators/kotlin-server)
|
||||||
- [kotlin-spring](generators/kotlin-spring.md)
|
* [kotlin-spring](generators/kotlin-spring)
|
||||||
- [nodejs-express-server](generators/nodejs-express-server.md) (beta)
|
* [nodejs-express-server (beta)](generators/nodejs-express-server)
|
||||||
- [nodejs-server-deprecated](generators/nodejs-server-deprecated.md) (deprecated)
|
* [nodejs-server-deprecated (deprecated)](generators/nodejs-server-deprecated)
|
||||||
- [php-laravel](generators/php-laravel.md)
|
* [php-laravel](generators/php-laravel)
|
||||||
- [php-lumen](generators/php-lumen.md)
|
* [php-lumen](generators/php-lumen)
|
||||||
- [php-silex](generators/php-silex.md)
|
* [php-silex](generators/php-silex)
|
||||||
- [php-slim](generators/php-slim.md)
|
* [php-slim](generators/php-slim)
|
||||||
- [php-symfony](generators/php-symfony.md)
|
* [php-symfony](generators/php-symfony)
|
||||||
- [php-ze-ph](generators/php-ze-ph.md)
|
* [php-ze-ph](generators/php-ze-ph)
|
||||||
- [python-aiohttp](generators/python-aiohttp.md)
|
* [python-aiohttp](generators/python-aiohttp)
|
||||||
- [python-blueplanet](generators/python-blueplanet.md)
|
* [python-blueplanet](generators/python-blueplanet)
|
||||||
- [python-flask](generators/python-flask.md)
|
* [python-flask](generators/python-flask)
|
||||||
- [ruby-on-rails](generators/ruby-on-rails.md)
|
* [ruby-on-rails](generators/ruby-on-rails)
|
||||||
- [ruby-sinatra](generators/ruby-sinatra.md)
|
* [ruby-sinatra](generators/ruby-sinatra)
|
||||||
- [rust-server](generators/rust-server.md)
|
* [rust-server](generators/rust-server)
|
||||||
- [scala-finch](generators/scala-finch.md)
|
* [scala-finch](generators/scala-finch)
|
||||||
- [scala-lagom-server](generators/scala-lagom-server.md)
|
* [scala-lagom-server](generators/scala-lagom-server)
|
||||||
- [scala-play-server](generators/scala-play-server.md)
|
* [scala-play-server](generators/scala-play-server)
|
||||||
- [scalatra](generators/scalatra.md)
|
* [scalatra](generators/scalatra)
|
||||||
- [spring](generators/spring.md)
|
* [spring](generators/spring)
|
||||||
|
|
||||||
|
|
||||||
* DOCUMENTATION generators:
|
## DOCUMENTATION generators
|
||||||
- [cwiki](generators/cwiki.md)
|
* [cwiki](generators/cwiki)
|
||||||
- [dynamic-html](generators/dynamic-html.md)
|
* [dynamic-html](generators/dynamic-html)
|
||||||
- [html](generators/html.md)
|
* [html](generators/html)
|
||||||
- [html2](generators/html2.md)
|
* [html2](generators/html2)
|
||||||
- [openapi](generators/openapi.md)
|
* [openapi](generators/openapi)
|
||||||
- [openapi-yaml](generators/openapi-yaml.md)
|
* [openapi-yaml](generators/openapi-yaml)
|
||||||
|
|
||||||
|
|
||||||
* SCHEMA generators:
|
## SCHEMA generators
|
||||||
- [mysql-schema](generators/mysql-schema.md)
|
* [mysql-schema](generators/mysql-schema)
|
||||||
|
|
||||||
|
|
||||||
* CONFIG generators:
|
## CONFIG generators
|
||||||
- [apache2](generators/apache2.md)
|
* [apache2](generators/apache2)
|
||||||
- [graphql-schema](generators/graphql-schema.md)
|
* [graphql-schema](generators/graphql-schema)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -38,9 +38,15 @@ NAME
|
|||||||
openapi-generator-cli list - Lists the available generators
|
openapi-generator-cli list - Lists the available generators
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
openapi-generator-cli list [(-s | --short)]
|
openapi-generator-cli list [(-i <include> | --include <include>)]
|
||||||
|
[(-s | --short)]
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
|
-i <include>, --include <include>
|
||||||
|
comma-separated list of stability indexes to include (value:
|
||||||
|
all,beta,stable,experimental,deprecated). Excludes deprecated by
|
||||||
|
default.
|
||||||
|
|
||||||
-s, --short
|
-s, --short
|
||||||
shortened output (suitable for scripting)
|
shortened output (suitable for scripting)
|
||||||
|
|
||||||
@ -210,13 +216,14 @@ This command takes one or more parameters representing the args list you would o
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
openapi-generator completion config-help
|
openapi-generator completion config-help
|
||||||
--named-header
|
|
||||||
-o
|
-o
|
||||||
--output
|
--output
|
||||||
|
--named-header
|
||||||
-g
|
-g
|
||||||
--generator-name
|
--generator-name
|
||||||
-l
|
-f
|
||||||
--lang
|
--format
|
||||||
|
--markdown-header
|
||||||
```
|
```
|
||||||
|
|
||||||
An example bash completion script can be found in the repo at [scripts/openapi-generator-cli-completion.bash](https://github.com/OpenAPITools/openapi-generator/blob/master/scripts/openapi-generator-cli-completion.bash).
|
An example bash completion script can be found in the repo at [scripts/openapi-generator-cli-completion.bash](https://github.com/OpenAPITools/openapi-generator/blob/master/scripts/openapi-generator-cli-completion.bash).
|
||||||
|
@ -5,15 +5,14 @@ import com.google.common.base.Objects;
|
|||||||
import io.airlift.airline.Command;
|
import io.airlift.airline.Command;
|
||||||
import io.airlift.airline.Option;
|
import io.airlift.airline.Option;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.openapitools.codegen.CodegenConfig;
|
import org.openapitools.codegen.CodegenConfig;
|
||||||
import org.openapitools.codegen.CodegenConfigLoader;
|
import org.openapitools.codegen.CodegenConfigLoader;
|
||||||
import org.openapitools.codegen.CodegenType;
|
import org.openapitools.codegen.CodegenType;
|
||||||
import org.openapitools.codegen.meta.GeneratorMetadata;
|
import org.openapitools.codegen.meta.GeneratorMetadata;
|
||||||
import org.openapitools.codegen.meta.Stability;
|
import org.openapitools.codegen.meta.Stability;
|
||||||
|
|
||||||
import java.util.Comparator;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Locale;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
// NOTE: List can later have subcommands such as list languages, list types, list frameworks, etc.
|
// NOTE: List can later have subcommands such as list languages, list types, list frameworks, etc.
|
||||||
@ -26,9 +25,31 @@ public class ListGenerators implements Runnable {
|
|||||||
@Option(name = {"-d", "--docsite" }, description = "format for docusaurus site output", hidden = true)
|
@Option(name = {"-d", "--docsite" }, description = "format for docusaurus site output", hidden = true)
|
||||||
private Boolean docusaurus = false;
|
private Boolean docusaurus = false;
|
||||||
|
|
||||||
|
@Option(name = {"-i", "--include" },
|
||||||
|
description = "comma-separated list of stability indexes to include (value: all,beta,stable,experimental,deprecated). Excludes deprecated by default.",
|
||||||
|
allowedValues = { "all", "beta", "stable", "experimental", "deprecated" })
|
||||||
|
private String include = "stable,beta,experimental";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
List<CodegenConfig> generators = CodegenConfigLoader.getAll();
|
List<CodegenConfig> generators = new ArrayList<>();
|
||||||
|
List<Stability> stabilities = Arrays.asList(Stability.values());
|
||||||
|
|
||||||
|
if (!StringUtils.isEmpty(include)) {
|
||||||
|
List<String> includes = Arrays.asList(include.split(","));
|
||||||
|
if (includes.size() != 0 && !includes.contains("all")) {
|
||||||
|
stabilities = includes.stream()
|
||||||
|
.map(Stability::forDescription)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (CodegenConfig codegenConfig : CodegenConfigLoader.getAll()) {
|
||||||
|
GeneratorMetadata meta = codegenConfig.getGeneratorMetadata();
|
||||||
|
if (meta != null && stabilities.contains(meta.getStability())) {
|
||||||
|
generators.add(codegenConfig);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
|
@ -50,4 +50,14 @@ public enum Stability {
|
|||||||
* @return The descriptive value of this enum.
|
* @return The descriptive value of this enum.
|
||||||
*/
|
*/
|
||||||
public String value() { return description; }
|
public String value() { return description; }
|
||||||
|
|
||||||
|
public static Stability forDescription(String description) {
|
||||||
|
for (Stability value: values()) {
|
||||||
|
if (value.description.equals(description)) {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new IllegalArgumentException("description not found in the available values.");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -374,6 +374,18 @@ openApiGenerate {
|
|||||||
|
|
||||||
|===
|
|===
|
||||||
|
|
||||||
|
=== openApiGenerators
|
||||||
|
|
||||||
|
.Options
|
||||||
|
|===
|
||||||
|
|Key |Data Type |Default |Description
|
||||||
|
|
||||||
|
|include
|
||||||
|
|String[]
|
||||||
|
|None
|
||||||
|
|A list of stability indexes to include (values: all,beta,stable,experimental,deprecated). Excludes deprecated by default.
|
||||||
|
|
||||||
|
|===
|
||||||
|
|
||||||
== Examples
|
== Examples
|
||||||
|
|
||||||
|
@ -19,6 +19,7 @@ package org.openapitools.generator.gradle.plugin
|
|||||||
import org.gradle.api.Plugin
|
import org.gradle.api.Plugin
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
import org.openapitools.generator.gradle.plugin.extensions.OpenApiGeneratorGenerateExtension
|
import org.openapitools.generator.gradle.plugin.extensions.OpenApiGeneratorGenerateExtension
|
||||||
|
import org.openapitools.generator.gradle.plugin.extensions.OpenApiGeneratorGeneratorsExtension
|
||||||
import org.openapitools.generator.gradle.plugin.extensions.OpenApiGeneratorMetaExtension
|
import org.openapitools.generator.gradle.plugin.extensions.OpenApiGeneratorMetaExtension
|
||||||
import org.openapitools.generator.gradle.plugin.extensions.OpenApiGeneratorValidateExtension
|
import org.openapitools.generator.gradle.plugin.extensions.OpenApiGeneratorValidateExtension
|
||||||
import org.openapitools.generator.gradle.plugin.tasks.GenerateTask
|
import org.openapitools.generator.gradle.plugin.tasks.GenerateTask
|
||||||
@ -53,12 +54,20 @@ class OpenApiGeneratorPlugin : Plugin<Project> {
|
|||||||
project
|
project
|
||||||
)
|
)
|
||||||
|
|
||||||
|
val generators = extensions.create(
|
||||||
|
"openApiGenerators",
|
||||||
|
OpenApiGeneratorGeneratorsExtension::class.java,
|
||||||
|
project
|
||||||
|
)
|
||||||
|
|
||||||
generate.outputDir.set("$buildDir/generate-resources/main")
|
generate.outputDir.set("$buildDir/generate-resources/main")
|
||||||
|
|
||||||
tasks.apply {
|
tasks.apply {
|
||||||
create("openApiGenerators", GeneratorsTask::class.java) {
|
create("openApiGenerators", GeneratorsTask::class.java) {
|
||||||
group = pluginGroup
|
group = pluginGroup
|
||||||
description = "Lists generators available via Open API Generators."
|
description = "Lists generators available via Open API Generators."
|
||||||
|
|
||||||
|
include.set(generators.include)
|
||||||
}
|
}
|
||||||
|
|
||||||
create("openApiMeta", MetaTask::class.java) {
|
create("openApiMeta", MetaTask::class.java) {
|
||||||
|
@ -0,0 +1,43 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2019 OpenAPI-Generator Contributors (https://openapi-generator.tech)
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.openapitools.generator.gradle.plugin.extensions
|
||||||
|
|
||||||
|
import org.gradle.api.Project
|
||||||
|
import org.gradle.api.tasks.Internal
|
||||||
|
import org.gradle.kotlin.dsl.listProperty
|
||||||
|
import org.openapitools.codegen.meta.Stability
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gradle project level extension object definition for the generators task
|
||||||
|
*
|
||||||
|
* @author Jim Schubert
|
||||||
|
*/
|
||||||
|
open class OpenApiGeneratorGeneratorsExtension(project: Project) {
|
||||||
|
/**
|
||||||
|
* A list of stability indexes to include (value: all,beta,stable,experimental,deprecated). Excludes deprecated by default.
|
||||||
|
*/
|
||||||
|
val include = project.objects.listProperty<String>()
|
||||||
|
|
||||||
|
init {
|
||||||
|
applyDefaults()
|
||||||
|
}
|
||||||
|
|
||||||
|
@Suppress("MemberVisibilityCanBePrivate")
|
||||||
|
fun applyDefaults(){
|
||||||
|
include.set(Stability.values().map { s -> s.value() }.filterNot { it == Stability.DEPRECATED.value() })
|
||||||
|
}
|
||||||
|
}
|
@ -17,9 +17,11 @@
|
|||||||
package org.openapitools.generator.gradle.plugin.tasks
|
package org.openapitools.generator.gradle.plugin.tasks
|
||||||
|
|
||||||
import org.gradle.api.DefaultTask
|
import org.gradle.api.DefaultTask
|
||||||
|
import org.gradle.api.tasks.Internal
|
||||||
import org.gradle.api.tasks.TaskAction
|
import org.gradle.api.tasks.TaskAction
|
||||||
import org.gradle.internal.logging.text.StyledTextOutput
|
import org.gradle.internal.logging.text.StyledTextOutput
|
||||||
import org.gradle.internal.logging.text.StyledTextOutputFactory
|
import org.gradle.internal.logging.text.StyledTextOutputFactory
|
||||||
|
import org.gradle.kotlin.dsl.listProperty
|
||||||
import org.openapitools.codegen.CodegenConfigLoader
|
import org.openapitools.codegen.CodegenConfigLoader
|
||||||
import org.openapitools.codegen.CodegenType
|
import org.openapitools.codegen.CodegenType
|
||||||
import org.openapitools.codegen.meta.GeneratorMetadata
|
import org.openapitools.codegen.meta.GeneratorMetadata
|
||||||
@ -35,6 +37,12 @@ import org.openapitools.codegen.meta.Stability
|
|||||||
* @author Jim Schubert
|
* @author Jim Schubert
|
||||||
*/
|
*/
|
||||||
open class GeneratorsTask : DefaultTask() {
|
open class GeneratorsTask : DefaultTask() {
|
||||||
|
/**
|
||||||
|
* A list of stability indexes to include (value: all,beta,stable,experimental,deprecated). Excludes deprecated by default.
|
||||||
|
*/
|
||||||
|
@get:Internal
|
||||||
|
val include = project.objects.listProperty<String>()
|
||||||
|
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
@TaskAction
|
@TaskAction
|
||||||
fun doWork() {
|
fun doWork() {
|
||||||
@ -45,6 +53,15 @@ open class GeneratorsTask : DefaultTask() {
|
|||||||
StringBuilder().apply {
|
StringBuilder().apply {
|
||||||
val types = CodegenType.values()
|
val types = CodegenType.values()
|
||||||
|
|
||||||
|
val stabilities = if (include.isPresent) {
|
||||||
|
when {
|
||||||
|
include.get().contains("all") -> Stability.values().toList()
|
||||||
|
else -> include.get().map { Stability.forDescription(it) }
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Stability.values().filterNot { it == Stability.DEPRECATED }
|
||||||
|
}
|
||||||
|
|
||||||
append("The following generators are available:")
|
append("The following generators are available:")
|
||||||
|
|
||||||
append(System.lineSeparator())
|
append(System.lineSeparator())
|
||||||
@ -56,21 +73,23 @@ open class GeneratorsTask : DefaultTask() {
|
|||||||
|
|
||||||
generators.filter { it.tag == type }
|
generators.filter { it.tag == type }
|
||||||
.sortedBy { it.name }
|
.sortedBy { it.name }
|
||||||
.forEach({ generator ->
|
.forEach { generator ->
|
||||||
|
|
||||||
val meta: GeneratorMetadata? = generator.generatorMetadata
|
val meta: GeneratorMetadata? = generator.generatorMetadata
|
||||||
|
val include = stabilities.contains(meta?.stability)
|
||||||
|
if (include) {
|
||||||
|
append(" - ")
|
||||||
|
append(generator.name)
|
||||||
|
|
||||||
append(" - ")
|
meta?.stability?.let {
|
||||||
append(generator.name)
|
if (it != Stability.STABLE) {
|
||||||
|
append(" (${it.value()})")
|
||||||
meta?.stability?.let {
|
}
|
||||||
if (it != Stability.STABLE) {
|
|
||||||
append(" (${it.value()})")
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
append(System.lineSeparator())
|
append(System.lineSeparator())
|
||||||
})
|
}
|
||||||
|
}
|
||||||
|
|
||||||
append(System.lineSeparator())
|
append(System.lineSeparator())
|
||||||
append(System.lineSeparator())
|
append(System.lineSeparator())
|
||||||
|
@ -19,6 +19,8 @@ package org.openapitools.codegen.languages;
|
|||||||
import org.openapitools.codegen.CodegenModel;
|
import org.openapitools.codegen.CodegenModel;
|
||||||
import org.openapitools.codegen.CodegenProperty;
|
import org.openapitools.codegen.CodegenProperty;
|
||||||
import org.openapitools.codegen.SupportingFile;
|
import org.openapitools.codegen.SupportingFile;
|
||||||
|
import org.openapitools.codegen.meta.GeneratorMetadata;
|
||||||
|
import org.openapitools.codegen.meta.Stability;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
@ -33,6 +35,10 @@ public class GoClientExperimentalCodegen extends GoClientCodegen {
|
|||||||
super();
|
super();
|
||||||
outputFolder = "generated-code/go-experimental";
|
outputFolder = "generated-code/go-experimental";
|
||||||
embeddedTemplateDir = templateDir = "go-experimental";
|
embeddedTemplateDir = templateDir = "go-experimental";
|
||||||
|
|
||||||
|
generatorMetadata = GeneratorMetadata.newBuilder(generatorMetadata)
|
||||||
|
.stability(Stability.EXPERIMENTAL)
|
||||||
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -18,6 +18,9 @@ package org.openapitools.codegen.languages;
|
|||||||
|
|
||||||
import java.text.DateFormat;
|
import java.text.DateFormat;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
|
|
||||||
|
import org.openapitools.codegen.meta.GeneratorMetadata;
|
||||||
|
import org.openapitools.codegen.meta.Stability;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
@ -39,6 +42,10 @@ public class PythonClientExperimentalCodegen extends PythonClientCodegen {
|
|||||||
apiTemplateFiles.put("python-experimental/api.mustache", ".py");
|
apiTemplateFiles.put("python-experimental/api.mustache", ".py");
|
||||||
modelDocTemplateFiles.put("python-experimental/model_doc.mustache", ".md");
|
modelDocTemplateFiles.put("python-experimental/model_doc.mustache", ".md");
|
||||||
modelTemplateFiles.put("python-experimental/model.mustache", ".py");
|
modelTemplateFiles.put("python-experimental/model.mustache", ".py");
|
||||||
|
|
||||||
|
generatorMetadata = GeneratorMetadata.newBuilder(generatorMetadata)
|
||||||
|
.stability(Stability.EXPERIMENTAL)
|
||||||
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user