SnapCLI 2.0.1-pre
dotnet add package SnapCLI --version 2.0.1-pre
NuGet\Install-Package SnapCLI -Version 2.0.1-pre
<PackageReference Include="SnapCLI" Version="2.0.1-pre" />
paket add SnapCLI --version 2.0.1-pre
#r "nuget: SnapCLI, 2.0.1-pre"
// Install SnapCLI as a Cake Addin #addin nuget:?package=SnapCLI&version=2.0.1-pre&prerelease // Install SnapCLI as a Cake Tool #tool nuget:?package=SnapCLI&version=2.0.1-pre&prerelease
SnapCLI
Quickly create POSIX-like Command Line Interface (CLI) applications with a simple metadata API, built on top of the System.CommandLine library.
NuGet Package
The library is available as a NuGet package:
Project Goal
While Microsoft's System.CommandLine
library provides all the necessary APIs to parse command-line arguments, it requires significant effort to set up the code responsible for command-line handling before the program is ready to run. Additionally, this code can be difficult to maintain. For more context, see the Motivation page.
The goal of this project is to address these issues by providing developers with easy-to-use mechanisms, while retaining the core functionality and features of System.CommandLine
.
This library enables developers to quickly create POSIX-like CLI applications by automatically managing command-line commands and parameters using the provided metadata. This simplifies the development process and allows developers to focus on their application logic.
Additionally, it streamlines the creation of the application's help system, ensuring that all necessary information is easily accessible to end users.
The inspiration for this project came from the DragonFruit project, which was a step in the right direction to simplify the usage of System.CommandLine
but has significant limitations.
Documentation
Visit the Documentation page to get started with SnapCLI’s APIs.
Examples
There are several samples provided to demonstrate various ways to use the library.
.NET Framework Support
Supported frameworks can be found on the SnapCLI NuGet page. The goal is to maintain the same level of support as the System.CommandLine library.
License
This project is licensed under the MIT License. Some parts of this project are borrowed with modifications from DragonFruit under the MIT License.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. 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. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. 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.0
- System.CommandLine (>= 2.0.0-beta4.22272.1)
-
net6.0
- System.CommandLine (>= 2.0.0-beta4.22272.1)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on SnapCLI:
Package | Downloads |
---|---|
SnapCLI.DataAnnotations
This extension for SnapCLI library enables validation of command-line arguments based on data annotation attributes, ensuring that input meets specified criteria before executing the command. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Fix links in package description