McMaster.Extensions.CommandLineUtils 2.3.0-beta

Command-line parsing API and utilities for console applications.

Commonly used types:

McMaster.Extensions.CommandLineUtils.CommandLineApplication
McMaster.Extensions.CommandLineUtils.CommandOption
McMaster.Extensions.CommandLineUtils.IConsole
McMaster.Extensions.CommandLineUtils.Prompt
McMaster.Extensions.CommandLineUtils.ArgumentEscaper

A community-maintained fork of Microsoft.Extensions.CommandLineUtils, plus many enhancements.

This is a prerelease version of McMaster.Extensions.CommandLineUtils.
There is a newer version of this package available.
See the version list below for details.
Install-Package McMaster.Extensions.CommandLineUtils -Version 2.3.0-beta
dotnet add package McMaster.Extensions.CommandLineUtils --version 2.3.0-beta
paket add McMaster.Extensions.CommandLineUtils --version 2.3.0-beta
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Release Notes

Enhancements:

* Support the POSIX convention for cluster multiple options. For example, `-ixd` is treated the same as `-i -x -d`.

* @bjorg: support SingleOrNoValue notation. `--option[:value]`

* New type: `Pager`. Provides a simple interaction model for displaying console output in a pager.

* Display help text using the `less` pager on macOS/Linux.

* Make suggestions when invalid options or commands are used, but there is a valid one that is similar.
 (Thanks to @MadbHatter for doing the initial work on this.)

* Add support for subcommand aliases. Commands can be given multiple names.
 ```c#
 [Command("organization", "org", "o")]
 public class OrgCommand { }
 ```

* Obsolete the constructor of `[Subcommand]` which takes a string.

* Infer subcommand names from the type name
 ```c#
 [Subcommand(typeof(AddCommand))]
 public class Git { }

 public class AddCommand { } // subcommand name = "add"
 ```

* @lvermeulen: Sort subcommands by name in help text. This can be disabled with `DefaultHelpTextGenerator.SortCommandsByName`.

* @jcaillon: Add API for `UnrecognizedCommandParsingException` which includes suggestions for similar options or commands.

Bugs fixed:

* Duplicate subcommand names used to cause undefined behavior. Now, attempting to add a duplicate subcommand name or aliases will
 cause the library to throw before the app can execute.

* Fix bug in subcommand name inference. When not specified, the subcommand always matched the entry assembly name.
 In this update, this convention only applies to the parent command.

* Add generic overloads of `.IsRequired()` for `CommandOption<T>` and `CommandArgument<T>`.

* @handcraftedsource: handled nested HelpOptions (fixes #86 - InvalidOperationException when multiple help options were defined)


See more details here: https://github.com/natemcmaster/CommandLineUtils/blob/master/CHANGELOG.md#v230

Version History

Version Downloads Last updated
2.3.2 2,768 2/5/2019
2.3.1 4,712 1/19/2019
2.3.0 14,042 1/1/2019
2.3.0-rc.460 214 12/15/2018
2.3.0-beta 538 12/4/2018
2.3.0-alpha 1,143 10/3/2018
2.2.5 123,646 7/2/2018
2.2.4 26,099 5/25/2018
2.2.3 15,072 5/11/2018
2.2.2 7,943 4/28/2018
2.2.1 7,718 4/11/2018
2.2.0 69,128 3/31/2018
2.2.0-rc 732 3/23/2018
2.2.0-beta 451 3/8/2018
2.2.0-alpha 436 2/20/2018
2.1.1 35,109 12/28/2017
2.1.0 1,455 12/13/2017
2.1.0-rc 405 12/7/2017
2.1.0-beta 1,047 11/22/2017
2.1.0-alpha 298 11/11/2017
2.0.1 4,730 10/13/2017
2.0.0 3,274 9/16/2017