NeoAgi.CommandLine
1.1.1
See the version list below for details.
dotnet add package NeoAgi.CommandLine --version 1.1.1
NuGet\Install-Package NeoAgi.CommandLine -Version 1.1.1
<PackageReference Include="NeoAgi.CommandLine" Version="1.1.1" />
<PackageVersion Include="NeoAgi.CommandLine" Version="1.1.1" />
<PackageReference Include="NeoAgi.CommandLine" />
paket add NeoAgi.CommandLine --version 1.1.1
#r "nuget: NeoAgi.CommandLine, 1.1.1"
#:package NeoAgi.CommandLine@1.1.1
#addin nuget:?package=NeoAgi.CommandLine&version=1.1.1
#tool nuget:?package=NeoAgi.CommandLine&version=1.1.1
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;
T opts = args.GetOps<T>();
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
strings inargs[] - If the string begins with
-use the next ordnal as the value - Properties marked as
Requiredmust 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 handles the default interpertation of ExitDirective.cs which returns an exit code of 1 and prints the default usage help.
Help
To display the help without parsing args, provide --help as the first parameter.
Overriding Default Behaivor
If desired the entire exit process can be intercepted with a lambda of type Action<OptionManager, ExitDirective> on string[].GetOpt().
ProgramArguments opts = args.GetOps<ProgramArguments>((manager, exit) => {
exit.ProcessHelp = false;
exit.ExitCode = int.MaxValue;
manager.PrintHelpErrors(Console.Error, manager.Errors);
manager.PrintHelpOptions<ProgramArguments>(Console.Out);
});
Pay special attention of suppressing the default Help hanlder by setting exit.ProcessHelp to false if manipulating the output. Otherwise the default usage will fire in addition to other modifications.
OptionManager.PrintHelp<T> describes the default usage used.
| 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 was computed. 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.
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.