NibblePoker.Library.Arguments
2.0.0
dotnet add package NibblePoker.Library.Arguments --version 2.0.0
NuGet\Install-Package NibblePoker.Library.Arguments -Version 2.0.0
<PackageReference Include="NibblePoker.Library.Arguments" Version="2.0.0" />
paket add NibblePoker.Library.Arguments --version 2.0.0
#r "nuget: NibblePoker.Library.Arguments, 2.0.0"
// Install NibblePoker.Library.Arguments as a Cake Addin #addin nuget:?package=NibblePoker.Library.Arguments&version=2.0.0 // Install NibblePoker.Library.Arguments as a Cake Tool #tool nuget:?package=NibblePoker.Library.Arguments&version=2.0.0
.NET - Launch Arguments Parser Library
A simple and 'to-the-point' library to parse launch arguments in .NET and .NET Core applications.
This library is an improved port of my PB-Arguments library that intended to achieve the same goals but was missing support for some features.<br> It is also has the exact same features as the port in C99-Utility-Libraries.
Features
- Easy to use, lightweight and 'to-the-point' philosophy
- No unnecessary types, classes, procedures and whatnot
- Support for 'git-like' verbs
- Different behavior for options
- Required options
- Repeatable flag-like options
- Multiple value
- Multiple default option per verb with index-based ordering
- Hidden in help text
- Early parser exit
- In-between verbs
- Configurable help text printer
- Easy exception filtering with inheritance
- 1 common parent
- 3 child for distinct parts of the library
- 14 final errors thrown in specific places.
Requirements
- .NET Framework 4.0 or newer
- .NET v6.0 or newer
Documentation
Go to aziascreations.github.io/DotNet-Arguments/ for the HTML documentation.
Building
Please refer to the building.md file for more information.
Basic Example
The following example shows you how to declare 2 options and how to parse and use the launch arguments.
// Preparing options and root verb.
Option OptionHelp = new('h', "help", "", OptionFlags.StopsParsing);
Option OptionVerbose = new('v', "verbose", "", OptionFlags.Repeatable);
Verb RootVerb = new Verb("").RegisterOption(OptionHelp).RegisterOption(OptionVerbose);
// Parsing lanch arguments
try {
ArgumentsParser.ParseArguments(RootVerb, args); // 'args' is gotten from Main().
} catch(ArgumentException) {
Console.Error.Write("Failed to parse the launch arguments !");
RootVerb.Clear(); // Ignoring the error and simulating no launch parameters.
}
// Using the results
if(OptionHelp.WasUsed()) {
Console.WriteLine(HelpText.GetFullHelpText(RootVerb, "app.exe"));
}
if(OptionVerbose.WasUsed() && OptionVerbose.Occurrences >= 2) {
// We count the number of occurences to enable more logging.
Console.WriteLine("Activating super-verbose mode !");
}
Other Examples
- Regular Declaration
- Standard recommended method of declaring and using the options and verbs
- Loose Declaration
- Declaration, registration and parsing done in a single nested statement
License
The code in this repository is licensed under CC0 1.0 Universal (CC0 1.0) (Public Domain).
The doxygen-awesome-css repository is used as a submodule for Doxygen and is licensed under the MIT license.
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 is compatible. 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. |
.NET Framework | net40 is compatible. net403 was computed. net45 was computed. net451 was computed. net452 was computed. net46 was computed. net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
-
.NETFramework 4.0
- No dependencies.
-
net6.0
- No dependencies.
-
net7.0
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Added support for .NET Framework 4, Added 'Verb.RegisterOptionRecursively', Disabled implicit usings and nullables