ArgSharpCLI 4.0.0
dotnet add package ArgSharpCLI --version 4.0.0
NuGet\Install-Package ArgSharpCLI -Version 4.0.0
<PackageReference Include="ArgSharpCLI" Version="4.0.0" />
paket add ArgSharpCLI --version 4.0.0
#r "nuget: ArgSharpCLI, 4.0.0"
// Install ArgSharpCLI as a Cake Addin #addin nuget:?package=ArgSharpCLI&version=4.0.0 // Install ArgSharpCLI as a Cake Tool #tool nuget:?package=ArgSharpCLI&version=4.0.0
ArgSharpCLI
Overview
ArgSharpCLI
is a feature-rich, yet lightweight, command-line argument parser designed for C# applications. It's built with SOLID principles, making your CLI apps both easy to develop and maintain.
Table of Contents
Features
- 📦 Out-of-the-box functionality
- 🛠️ Easy command and sub-command registration
- 👁️ Support for short (
-h
) and long (--help
) option names - 📘 Built-in help features
- 🔌 Extensibility for complex scenarios
- 🌟 SOLID principles for high maintainability
Getting Started
Installation
dotnet add package ArgSharpCLI
Basic Usage
The following example demonstrates adding a simple TestCommand class and executing it.
using ArgSharpCLI;
// Define a simple command
[Command(Name = "test")]
public class TestCommand : ICommand
{
[Option("test-option", "t", "test option")]
public string? TestOption { get; set; }
[Option("test-boolean-option", "b", "test boolean option")]
public bool TestBooleanOption { get; set; }
}
// In your Main method
var command = new CommandBuilder()
.AddArguments(args)
.AddCommand<TestCommand>()
.Build();
// Execute the built command
command.Match(
onSuccess: cmd => cmd.Run(),
onFailure: err => Console.WriteLine($"Error: {err}")
);
Advanced Usage
You can organize your commands into sub-commands as shown below:
using ArgSharpCLI;
// Define the main command
[Command(Name = "main")]
public class MainCommand : ICommand
{
// Implementation here
}
// Define a sub-command
[Command(Name = "sub")]
public class SubCommand : ICommand
{
// Implementation here
}
// In your Main method
var command = new CommandBuilder()
.AddArguments(args)
.AddCommand<MainCommand>(cmd => {
cmd.AddSubCommand<SubCommand>();
})
.Build();
// Execute the command
// Execute the built command
command.Match(
onSuccess: cmd => cmd.Run(),
onFailure: err => Console.WriteLine($"Error: {err}")
);
License
This project is licensed under the MIT License. Feel free to copy and paste this markdown into your README.md file, and adjust it as necessary to fit your project.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. 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. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- Microsoft.Extensions.Configuration.Abstractions (>= 7.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 7.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.