EonaCat.Cli
1.0.0
Prefix Reserved
dotnet add package EonaCat.Cli --version 1.0.0
NuGet\Install-Package EonaCat.Cli -Version 1.0.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="EonaCat.Cli" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="EonaCat.Cli" Version="1.0.0" />
<PackageReference Include="EonaCat.Cli" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add EonaCat.Cli --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: EonaCat.Cli, 1.0.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.
#:package EonaCat.Cli@1.0.0
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=EonaCat.Cli&version=1.0.0
#tool nuget:?package=EonaCat.Cli&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
EonaCat.Cli
Easily create Cli commands and a help menu using EonaCat.Cli.
var parser = new CliParser()
.AddOption(new CliOption("help", 'h', description: "Show help", valueType: typeof(bool)))
.AddOption(new CliOption("name", 'n', isRequired: true, description: "Name of user"))
.AddOption(new CliOption("count", 'c', description: "Number of times", valueType: typeof(int), defaultValue: 1, validator: val =>
{
if (int.TryParse(val.ToString(), out var i))
return i > 0;
return false;
}))
.AddOption(new CliOption("verbose", 'v', description: "Verbose output", valueType: typeof(bool)))
.AddOption(new CliOption("files", 'f', description: "Input files", allowsMultiple: true));
// Add a sample subcommand "greet"
parser.AddCommand(new CliCommand(
"greet",
"Greet the user",
new List<CliOption>
{
new CliOption("name", 'n', true, description: "Name to greet"),
new CliOption("count", 'c', description: "Number of greetings", valueType: typeof(int), defaultValue: 1)
},
async (result) =>
{
if (result.HasFlag("help"))
{
Console.WriteLine("Usage: greet --name <name> [--count <num>]");
return;
}
string name = result.Get<string>("name");
int count = result.Get<int>("count");
for (int i = 0; i < count; i++)
{
Console.WriteLine($"Hello, {name}!");
await Task.Delay(100);
}
}));
try
{
await parser.ParseAndRunAsync(args);
}
catch (ArgumentException ex)
{
Console.WriteLine($"Error: {ex.Message}");
Console.WriteLine(parser.GetHelpText());
}
}
Running help for the greet command:
dotnet run -- greet --help
Outputs:
Usage: greet --name <name> [--count <num>]
Options:
--name, -n <name> Name to greet
--count, -c <num> Number of greetings (default: 1)
Running the greet command:
dotnet run -- greet --name Alice --count 3
Outputs:
Hello, Alice!
Hello, Alice!
Hello, Alice!
Running without any arguments (prints general help):
dotnet run
Outputs:
Commands:
greet - Greet the user
Options:
-h, --help Show help
-n, --name <string> (required) Name of user
-c, --count <int> Number of times
-v, --verbose Verbose output
-f, --files [multiple] Input files
dotnet run unknowncmd
dotnet run unknowncmd
Outputs:
Unknown command 'unknowncmd'. Available commands:
greet
Running greet missing required option name:
dotnet run greet
Outputs:
Error: Missing required options: --name
Usage: greet --name <name> [--count <num>]
| 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. 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
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.0.0 | 225 | 6/29/2025 |