Skip to content

Commit fecbc3c

Browse files
committed
Merge pull request #1306 from fdorothy/master
Specifying configuration files from Codegen class
2 parents a6e4203 + 2a679f7 commit fecbc3c

File tree

1 file changed

+17
-1
lines changed
  • modules/swagger-codegen/src/main/java/io/swagger/codegen

1 file changed

+17
-1
lines changed

modules/swagger-codegen/src/main/java/io/swagger/codegen/Codegen.java

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package io.swagger.codegen;
22

3+
import config.Config;
4+
import config.ConfigParser;
35
import io.swagger.models.Swagger;
46
import io.swagger.parser.SwaggerParser;
57
import org.apache.commons.cli.BasicParser;
@@ -9,6 +11,7 @@
911
import org.apache.commons.cli.Options;
1012

1113
import java.util.ArrayList;
14+
import java.util.Arrays;
1215
import java.util.HashMap;
1316
import java.util.Iterator;
1417
import java.util.List;
@@ -41,6 +44,7 @@ public static void main(String[] args) {
4144
options.addOption("t", "template-dir", true, "folder containing the template files");
4245
options.addOption("d", "debug-info", false, "prints additional info for debugging");
4346
options.addOption("a", "auth", true, "adds authorization headers when fetching the swagger definitions remotely. Pass in a URL-encoded string of name:header with a comma separating multiple values");
47+
options.addOption("c", "config", true, "location of the configuration file");
4448

4549
ClientOptInput clientOptInput = new ClientOptInput();
4650
ClientOpts clientOpts = new ClientOpts();
@@ -84,6 +88,18 @@ public static void main(String[] args) {
8488
if (cmd.hasOption("i")) {
8589
swagger = new SwaggerParser().read(cmd.getOptionValue("i"), clientOptInput.getAuthorizationValues(), true);
8690
}
91+
if (cmd.hasOption("c")) {
92+
String configFile = cmd.getOptionValue("c");
93+
Config genConfig = ConfigParser.read(configFile);
94+
config = clientOptInput.getConfig();
95+
if (null != genConfig && null != config) {
96+
for (CliOption langCliOption : config.cliOptions()) {
97+
if (genConfig.hasOption(langCliOption.getOpt())) {
98+
config.additionalProperties().put(langCliOption.getOpt(), genConfig.getOption(langCliOption.getOpt()));
99+
}
100+
}
101+
}
102+
}
87103
if (cmd.hasOption("t")) {
88104
clientOpts.getProperties().put(CodegenConstants.TEMPLATE_DIR, String.valueOf(cmd.getOptionValue("t")));
89105
}
@@ -145,4 +161,4 @@ public static CodegenConfig getConfig(String name) {
145161
configString = sb.toString();
146162
}
147163
}
148-
}
164+
}

0 commit comments

Comments
 (0)