cli_readme_builder 1.5.0 cli_readme_builder: ^1.5.0 copied to clipboard
A builder to automate the process of creating a README for Dart console applications
CLI README Builder
A builder to generate a README
Overview #
The goal of this package is to automate the process of creating a readme file for Dart console applications.
How it Works #
This package generates a single file which contains --help
output from every command in the application.
This builder works as follows:
- Find the binary executable file in your package
- Run the executable with the
--help
flag - Capture the output and parse it
- For each top-level command, capture the
--help
output of that command and its sub-commands - Generate a file with the information gathered above
Usage #
-
Add
cli_readme_builder
andbuild_runner
topubspec.yaml
name: example_cli dev_dependencies: build_runner: ^1.0.0 cli_readme_builder: ^1.0.0
-
Run a build
> dart pub run build_runner build
-
README.g.md
will be generated with content:
example_cli #
Example CLI app
Usage #
example_cli --help
Help output:
Example CLI app Usage: example_cli <command> [arguments] Global options: -h, --help Print this usage information. Available commands: child_command Child Command description Run "example_cli help <command>" for more information about a command.
Available commands #
child_command #
example_cli child_command --help
Help output:
Child Command description Usage: example_cli child_command [arguments] -h, --help Print this usage information. --option_arg=<value help for option> An option argument --[no-]flag_arg A flag argument Run "example_cli help" to see global options.
See a full example output here: Example App Output
Customization #
To change the path of the generated file, create a build.yaml
in the root of your package.
By changing the output
option of this builder, the path can be customized:
targets:
$default:
builders:
cli_readme_builder:
options:
output: my_output_file.md
Advanced #
Verbose logging #
In an effort to make debugging easier, verbose_logging
can be added as an input to the build.yaml
targets:
$default:
builders:
cli_readme_builder:
options:
verbose_logging: true