As the codegen model has evolved, we have a challenge with the configuration interface. Specifically with the introduction of the airline toolkit for parsing the CLI options, we've ended up with a bit of an abomination of arguments and system properties, all with the ability to be overridden with a configuration file.
The challenge (and why I pointed out airline) is that different targets will need have different needs for configuration options. There is no package in javascript, for example, but we always have a set of common needs, such as reading the specification from a specific location, etc.
I would like to redo the launcher aspect of codegen to include the following:
- Removal of the strict, annotation-based
airline library
- Addition of another CLI parsing library that allows for short and extended args (
-h and --host, for example)
- Standardization of some core arguments to parse. These will be constant across all targets
- A clear extension mechanism for adding new arguments for a specific library with descriptions and helpful information
- A method to load the arguments from a single JSON or YAML file
- Removal of all system properties when running the codegen. These are creating issues with CI tools and are just ugly
As the codegen model has evolved, we have a challenge with the configuration interface. Specifically with the introduction of the airline toolkit for parsing the CLI options, we've ended up with a bit of an abomination of arguments and system properties, all with the ability to be overridden with a configuration file.
The challenge (and why I pointed out
airline) is that different targets will need have different needs for configuration options. There is nopackagein javascript, for example, but we always have a set of common needs, such as reading the specification from a specific location, etc.I would like to redo the launcher aspect of codegen to include the following:
airlinelibrary-hand--host, for example)