NibblePoker.Library.Arguments 1.2.0

dotnet add package NibblePoker.Library.Arguments --version 1.2.0
NuGet\Install-Package NibblePoker.Library.Arguments -Version 1.2.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="NibblePoker.Library.Arguments" Version="1.2.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add NibblePoker.Library.Arguments --version 1.2.0
#r "nuget: NibblePoker.Library.Arguments, 1.2.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install NibblePoker.Library.Arguments as a Cake Addin
#addin nuget:?package=NibblePoker.Library.Arguments&version=1.2.0

// Install NibblePoker.Library.Arguments as a Cake Tool
#tool nuget:?package=NibblePoker.Library.Arguments&version=1.2.0

.NET - Launch Arguments Parser Library

Nuget.org latest version Nuget.org downloads count Repository's License

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
  • 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

  • Any OS/CPU
  • .NET v6.0+
  • C# 10.0

Documentation

Go to aziascreations.github.io/DotNet-Arguments/ for the HTML documentation.

Building

See building.md

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

  • Loose Declaration
    • Declaration, registration and parsing done in a single nested statement

License

MIT License

The doxygen-awesome-css repository is used as a submodule for Doxygen and is licensed under the MIT license.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • 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.

Version Downloads Last updated
1.2.0 0 5/3/2024
1.1.0 429 10/9/2022
1.0.0 347 10/2/2022
0.2.0 344 9/30/2022
0.1.0 350 9/29/2022

Added .NET 8.0 target and in-between verbs options