build_cli 2.2.9 copy "build_cli: ^2.2.9" to clipboard
build_cli: ^2.2.9 copied to clipboard

Parse command line arguments directly into an annotation class using the power of build_runner and source_gen.

Dart CI Pub package package publisher

Parse command line arguments directly into an annotation class using the Dart Build System.

Example #

Annotate a class with @CliOptions() from package:build_cli_annotations.

import 'package:build_cli_annotations/build_cli_annotations.dart'; part 'example.g.dart'; @CliOptions() class Options { @CliOption(abbr: 'n', help: 'Required. The name to use in the greeting.') final String name; final bool nameWasParsed; late bool yell; @CliOption(defaultsTo: Language.en, abbr: 'l') late Language displayLanguage; @CliOption(negatable: false, help: 'Prints usage information.') late bool help; Options(this.name, {this.nameWasParsed = false}); } enum Language { en, es } 

Configure and run the Dart Build System and a set of helpers is created to parse the corresponding command line arguments and populate your class.

void main(List<String> args) { var options = parseOptions(args); if (!options.nameWasParsed) { throw new ArgumentError('You must set `name`.'); } print(options.name); } 

Setup #

Add three packages to pubspec.yaml:

dependencies: build_cli_annotations: ^1.0.0 dev_dependencies: build_cli: ^1.0.0 build_runner: ^1.0.0 
  • build_cli_annotations is a separate package containing the annotations you add to classes and members to tell build_cli what to do.
    • If the code you're annotating is in a published directory – lib, bin – put it in the dependencies section.
  • build_cli contains the logic to generate the code.
    • It should almost always be put in dev_dependencies.
  • build_runner contains the logic to run a build and generate code.
    • It should almost always be put in dev_dependencies.

Details #

Uses package:args under the covers.

More examples: #

17
likes
160
points
19.4k
downloads

Publisher

verified publisherkevmoo.com

Weekly Downloads

Parse command line arguments directly into an annotation class using the power of build_runner and source_gen.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

analyzer, build, build_cli_annotations, build_config, pub_semver, source_gen, source_helper, yaml

More

Packages that depend on build_cli