NeoAgi.CommandLine
1.5.0
dotnet add package NeoAgi.CommandLine --version 1.5.0
NuGet\Install-Package NeoAgi.CommandLine -Version 1.5.0
<PackageReference Include="NeoAgi.CommandLine" Version="1.5.0" />
<PackageVersion Include="NeoAgi.CommandLine" Version="1.5.0" />
<PackageReference Include="NeoAgi.CommandLine" />
paket add NeoAgi.CommandLine --version 1.5.0
#r "nuget: NeoAgi.CommandLine, 1.5.0"
#:package NeoAgi.CommandLine@1.5.0
#addin nuget:?package=NeoAgi.CommandLine&version=1.5.0
#tool nuget:?package=NeoAgi.CommandLine&version=1.5.0
NeoAgi.CommandLine
Emulation of CommandLineParser intending to work more at home in a GenericHost World
Default Behvior
The following is all that is necessary to parse options or throw a usage diagram:
using NeoAgi.CommandLine;
try {
T opts = args.GetOps<T>();
}
catch(Exception)
{
// Handle failures
}
T
can be any type with a constructor. Any property decorated with (OptionAttribute)[OptionAttribute.cs] will be parsed according to the following semantics:
- Loop through all
string
s inargs[]
- If the string begins with
-
use the next ordnal as the value - Properties marked as
Required
must have a value present - Optional values can be defaulted by setting the default initializer on the Property (e.g.
public int MaxAge { get; set; } = 99;
)
See OptionManager.Parse(string[] arr) for further information.
GetOps.cs will raise Exceptions if help is requested (e.g. --help
is the first argument) or if an Option cannot be parsed according to the constraints provided.
Help
To display the help without parsing args, provide --help
as the first parameter. This will throw an exception of type RaiseHelpException
Capture Parse Output
Output from the parser may be captured by providing an optional TextWriter to GetOpts<T>():
ProgramArguments opts = args.GetOps<ProgramArguments>(Console.Out);
An exception will be raised to capture control flow.
Handling Parse Errors
Parse errors may not require the program to end. Errors encountered in parsing are provided by throwing an exception of type CommandLineOptionParseException:
try
{
T opts = args.GetOps<T>();
}
catch (CommandLineOptionParseException ex)
{
foreach(OptionAttributeError error in ex.OptionsWithErrors)
{
Console.WriteLine($"{error.Option.FriendlyName} - {error.Reason.ToString()}");
}
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net6.0
- No dependencies.
-
net7.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on NeoAgi.CommandLine:
Package | Downloads |
---|---|
NeoAgi.CommandLine.Extensions.Configuration
NeoAgi.CommandLine Configuration Provider for Generic NETCORE Hosts |
GitHub repositories
This package is not used by any popular GitHub repositories.