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" />
<PackageVersion Include="ArgSharpCLI" Version="4.0.0" />
<PackageReference Include="ArgSharpCLI" />
paket add ArgSharpCLI --version 4.0.0
#r "nuget: ArgSharpCLI, 4.0.0"
#:package ArgSharpCLI@4.0.0
#addin nuget:?package=ArgSharpCLI&version=4.0.0
#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. 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. |
| .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.