CommandLineUtils

Command line parsing and utilities for .NET

APACHE-2.0 License

Stars
2.2K
Committers
101

Bot releases are visible (Hide)

CommandLineUtils - v2.2.0-beta

Published by natemcmaster over 6 years ago

This release contains a huge refactoring to the way the attribute-binding was implemented. As a part of this, I've made it possible for you to extend and control better the way that a .NET type is bound to CommandLineApplication.

New features:

  • Add CommandOptionType.SingleOrNoValue. Options of this type can be a switch, or have a value but only in the form --param:value or --param=value.
  • Support mapping Tuple<bool,T> and ValueTuple<bool,T> to CommandOptionType.SingleOrNoValue
  • Added CommandLineApplication<TModel>. This allows associating an application with a specific .NET type
  • Convention API. Adds support for writing your own conventions to convert command line arguments into a .NET type
  • [@sebastienros] - Support for case-insensitive options
  • Add support for constructor injection and dependency injection by providing a custom service provider

Build: https://ci.appveyor.com/project/natemcmaster/commandlineutils/build/2.2.0-beta
Release: https://www.nuget.org/packages/McMaster.Extensions.CommandLineUtils/2.2.0-beta

CommandLineUtils -

Published by natemcmaster almost 7 years ago

CommandLineUtils -

Published by natemcmaster almost 7 years ago

Same as the 2.1.0-rc release, but with documentation, more samples, and release notes.

CommandLineUtils - Attribute parsing and validation: 2.1.0-rc

Published by natemcmaster almost 7 years ago

Includes all the features of 2.1.0-alpha, but have been refined to handled better a wider range of configurations.

Plus, this includes parameter validation.

CommandLineUtils - Attribute parsing: 2.1.0-alpha

Published by natemcmaster almost 7 years ago

https://www.nuget.org/packages/McMaster.Extensions.CommandLineUtils/2.1.0-alpha

2.1.0:
New features:

  • Attributes. Simplify command line argument definitions by adding attributes to a class that represents options and arguments.
    • Options defined as [Option] or [Argument], [Subcommand].
    • Command parsing options can be defined with [Command] and [Subcmomand].
    • Special options include [HelpOption] and [VersionOption].
  • Async from end to end. Using C# 7.1 and attribute binding, your console app can be async from top to bottom.

New API

  • Added OptionAttribute, ArgumentAttribute, CommandAttribute, SubcommandAttribute, HelpOptionAttribute, and VersionOptionAttribute.
  • CommandLineApplication.Execute<TApp>() - executes an app where TApp uses attributes to define its options
  • CommandLineApplication.ExecuteAsync<TApp>() - sample thing, but async.
  • CommandLineApplication.StopParsingHelpOption and StopParsingVerboseOption. When the help and verbose options are matched
    against a command-line flag, the parsing will stop by default. You can turn this off by setting these options if you
    want OnExecute to be invoked no matter what.
  • CommandLineApplication.HandleResponseFiles - the parser can treat arguments that begin with '@' as response files.
    Response files contain arguments that will be treated as if they were passed on command line.

Minor bug fixes:

  • Add return types to .VerboseOption() and ensure .HasValue() is true when HelpOption or VerboseOption are matched
  • Fix a NullReferenceException in some edge cases when parsing args
CommandLineUtils - 2.0.1

Published by natemcmaster about 7 years ago

Changes

  • Added support of .NETStandard1.6 - Issue #5

https://www.nuget.org/packages/McMaster.Extensions.CommandLineUtils/2.0.1

CommandLineUtils - 2.0.0

Published by natemcmaster about 7 years ago

Changes from the RC

  • Add .NET Framework 4.5 support, in addition to .NET Standard 2.0
  • Fixed up a few docs

https://www.nuget.org/packages/McMaster.Extensions.CommandLineUtils/2.0.0

CommandLineUtils - 2.0.0 Release Candidate

Published by natemcmaster about 7 years ago

Changes

  • Added a bunch of documentation
  • Updated the licensing in the source code

Unless there are any big changes, the RTM of 2.0.0 will be basically the same.

https://www.nuget.org/packages/McMaster.Extensions.CommandLineUtils/2.0.0-rc