A builder to generate a README
The goal of this package is to automate the process of creating a readme file for Dart console applications.
This package can be used in two ways:
build_runner
-> Add to pubspec.yaml/dev_dependencies and run build_runner- Dart executable -> Instantiate this class in a dart file, and execute the dart file
In both cases, this package generates a single file which contains --help
output from every command in the application.
-
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 app
example_cli --helpHelp 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.
example_cli child_command --helpHelp 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
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
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
-
Add
cli_readme_builder
topubspec.yaml
dev_dependenciesname: example_cli dev_dependencies: cli_readme_builder: ^1.0.0
-
Create a dart file where you will execute this package
import 'package:cli_readme_builder/readme_builder_from_command_runner.dart'; import 'package:example/example_cli_command_runner.dart'; void main(List<String> args) { final myCommandRunner = ExampleCliCommandRunner(); ReadmeBuilderFromCommandRunner( args, myCommandRunner, ).generateReadme(); }
-
Run the file
dart run <path_to_my_file>
-
README.g.md
will be generated
See a full example output here: Example App Output
To change the path of the generated file, pass an output
option to your build step
dart run <path_to_my_file> --output <my_new_output_file>