vertical-cli
1.0.0-dev.20241010.25
Prefix Reserved
This is a prerelease version of vertical-cli.
There is a newer prerelease version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package vertical-cli --version 1.0.0-dev.20241010.25
NuGet\Install-Package vertical-cli -Version 1.0.0-dev.20241010.25
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="vertical-cli" Version="1.0.0-dev.20241010.25" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add vertical-cli --version 1.0.0-dev.20241010.25
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: vertical-cli, 1.0.0-dev.20241010.25"
#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 vertical-cli as a Cake Addin #addin nuget:?package=vertical-cli&version=1.0.0-dev.20241010.25&prerelease // Install vertical-cli as a Cake Tool #tool nuget:?package=vertical-cli&version=1.0.0-dev.20241010.25&prerelease
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
vertical-cli
Minimal, AOT friendly command line arguments parser.
Quick start
Install
dotnet add package vertical-cli --prerelease
Configure and run
using System;
using System.IO;
using Vertical.Cli.Configuration;
// Define a command
var command = new RootCommand<Arguments>("fcopy");
command
.AddArgument(x => x.Source)
.AddArgument(x => x.Destination)
.AddSwitch(x => x.Overwrite, ["-o", "--overwrite"])
.HandleAsync(async (model, cancellationToken) =>
{
if (model.Source.Exists() && !model.Overwrite)
{
Console.WriteLine("Desintation file exists and will not be overwritten.");
}
await using var source = model.Source.OpenRead();
await using var dest = model.Destination.OpenWrite();
await source.CopyToAsync(dest, cancellationToken);
});
await command.InvokeAsync(arguments);
// Define a model that will receive the arguments
record Arguments(FileInfo Source, FileInfo Destination, bool Overwrite);
Features
- Binds command line arguments to strongly typed models
- Configure positional arguments. options and switches using posix and GNU notation
- Configure contextual parameter validation
- Define a hierarchy of commands each with derived models
- Uses a source generator to bind models removing the need for reflection (AOT friendly)
- Display automatically generated help content
See full docs.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | 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.
-
net8.0
- communitytoolkit.diagnostics (>= 8.2.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.