MatthiWare.CommandLineParser
0.1.2
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package MatthiWare.CommandLineParser --version 0.1.2
NuGet\Install-Package MatthiWare.CommandLineParser -Version 0.1.2
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="MatthiWare.CommandLineParser" Version="0.1.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add MatthiWare.CommandLineParser --version 0.1.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: MatthiWare.CommandLineParser, 0.1.2"
#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 MatthiWare.CommandLineParser as a Cake Addin #addin nuget:?package=MatthiWare.CommandLineParser&version=0.1.2 // Install MatthiWare.CommandLineParser as a Cake Tool #tool nuget:?package=MatthiWare.CommandLineParser&version=0.1.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
CommandLineParser
A simple, light-weight and strongly typed commandline parser made in .Net standard.
Configuration
Using model class with attributes
using MatthiWare.CommandLine;
using MatthiWare.CommandLine.Core.Attributes;
static int Main(string[] args)
{
var parser = new CommandLineParser<OptionsModel>();
var parseResult = parser.Parse(args);
if (result.HasErrors)
{
Console.Error.WriteLine(result.Error);
Console.ReadKey();
return -1;
}
var options = result.Result;
Console.WriteLine($"Message: {options.Message}");
Console.WriteLine($"Port: {options.Port}");
Console.ReadKey();
return 0;
}
public class OptionsModel
{
[Required, Name("-m", "--message")]
public string Message { get; set; } // Mandatory
[Name("-p", "--port"), DefaultValue(8080)]
public int Port { get; set; } // Optional
}
Warning: Attributes will be overwritten by fluent api if both are configured
Using model class and Fluent API
using MatthiWare.CommandLine;
static int Main(string[] args)
{
var parser = new CommandLineParser<OptionsModel>();
parser.Configure(opt => opt.Message)
.Name("-m", "--message")
.Required();
parser.Configure(opt => opt.Port)
.Name("-p", "--port")
.Default(8080);
var parseResult = parser.Parse(args);
if (result.HasErrors)
{
Console.Error.WriteLine(result.Error);
Console.ReadKey();
return -1;
}
var options = result.Result;
Console.WriteLine($"Message: {options.Message}");
Console.WriteLine($"Port: {options.Port}");
Console.ReadKey();
return 0;
}
public class OptionsModel
{
public string Message { get; set; } // Mandatory
public int Port { get; set; } // Optional
}
Warning: Attributes will be overwritten by fluent api if both are configured
Commands
using MatthiWare.CommandLine;
static int Main(string[] args)
{
var parser = new CommandLineParser<OptionsModel>();
parser.Configure(opt => opt.Message)
.Name("-m", "--message")
.Required();
parser.Configure(opt => opt.Port)
.Name("-p", "--port")
.Default(8080);
var parseResult = parser.Parse(args);
var startCmd = parser.AddCommand<CommandOptions>()
.Name("-s", "--start")
.Required()
.OnExecuting(parsedCmdOption => Console.WriteLine($"Starting server using verbose option: {parsedCmdOption.Verbose}"));
startCmd.Configure(cmd => cmd.Verbose) // configures the command options can also be done using attributes
.Required()
.Name("-v", "--verbose");
if (result.HasErrors)
{
Console.Error.WriteLine(result.Error);
Console.ReadKey();
return -1;
}
foreach (var cmdResult in result.CommandResults)
{
cmdResult.ExecuteCommand(); // executes the command handler that is configured above.
}
var options = result.Result;
Console.WriteLine($"Message: {options.Message}");
Console.WriteLine($"Port: {options.Port}");
Console.ReadKey();
return 0;
}
public class OptionsModel
{
public string Message { get; set; } // Mandatory
public int Port { get; set; } // Optional
}
public class CommandOptions
{
public bool Verbose { get; set; }
}
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 | 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on MatthiWare.CommandLineParser:
Package | Downloads |
---|---|
MatthiWare.CommandLineParser.Extensions.FluentValidations
FluentValidations extension for MatthiWare.CommandLineParser |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
0.7.0 | 21,784 | 3/1/2022 |
0.6.0 | 7,323 | 4/2/2021 |
0.5.2 | 1,451 | 1/9/2021 |
0.5.1 | 388 | 1/5/2021 |
0.5.0 | 1,386 | 10/24/2020 |
0.4.0 | 1,179 | 9/21/2020 |
0.3.1 | 3,161 | 8/23/2020 |
0.3.0 | 4,807 | 2/23/2020 |
0.2.4 | 755 | 11/5/2019 |
0.2.3 | 703 | 7/21/2019 |
0.2.2 | 658 | 3/2/2019 |
0.2.1 | 769 | 1/18/2019 |
0.2.0 | 707 | 1/12/2019 |
0.2.0-alpha | 506 | 12/30/2018 |
0.1.3 | 692 | 12/10/2018 |
0.1.2 | 706 | 12/3/2018 |
0.1.1 | 692 | 11/28/2018 |
Adds documentation.