FlowCommandLine 1.0.6
dotnet add package FlowCommandLine --version 1.0.6
NuGet\Install-Package FlowCommandLine -Version 1.0.6
<PackageReference Include="FlowCommandLine" Version="1.0.6" />
<PackageVersion Include="FlowCommandLine" Version="1.0.6" />
<PackageReference Include="FlowCommandLine" />
paket add FlowCommandLine --version 1.0.6
#r "nuget: FlowCommandLine, 1.0.6"
#addin nuget:?package=FlowCommandLine&version=1.0.6
#tool nuget:?package=FlowCommandLine&version=1.0.6
FlowCommandLine
A fast and simple command line parser that works in two modes: command-based (e.g. git commit ...
) or parameters-only. Parsing can be happened to any model class or record with parameterless constructor.
It support modern dotnet core runtimes (net8+), compilation in NativeAot. It supported auto documentation for commands and parameters.
Lot of types of properties is supported.
By default, the output will be to the system console, but can be redefined to any of your case - instead CommandLine.Console ()
you can use new CommandLine (new MyConsoleCommandLineProvider())
where MyConsoleCommandLineProvider
it is you class which is implement ICommandLineProvider
interface.
Command-based mode
Example command line:
myconapp runapp --param1=stringvalue --param2=120
public class Test {
public string Param1 { get; set; } = "";
public int Param2 { get; set; }
}
CommandLine.Console ()
// setup console application description version and so on
.Application ( "My Console App", "1.0.0", "full description.", "Copyright My Super Corporation", "myconapp" )
.AddCommand ( // add console command
"runapp", // command name
( Test parameters ) => { // command delegate handler for class Test
...
},
"Command description", // command description :)
new List<FlowCommandParameter> { // adjust command parameters
new FlowCommandParameter {
FullName = "param1", // for parameter in format --param1
ShortName = "p1, // for parameter in format -p1
PropertyName = "Param1" // it
Description = "parameter description",
Required = true, // parameter is required
},
FlowCommandParameter.CreateRequired("p3", "param3", "parameter description"), // use factory method for required parameter
new FlowCommandParameter {
FullName = "param2", // full name is required property, other properties ShortName or PropertyName can be inferred from FullName
Description = "parameter2 description",
Required = false,
},
FlowCommandParameter.Create("p4", "param4", "parameter description"), // use factory method for non required parameter
}
)
.RunCommand ();
Parameters-only mode
Example command line:
myconapp --param1=stringvalue --param2=120
var options = CommandLine.Console ()
.Application ( "My Console App", "1.0.0", "full description.", "Copyright My Super Corporation", "myconapp" )
.AddOption ( "p1", "param1", "parameter 1 description", required: true )
.AddOption ( "p2", "param2", "parameter 2 description", required: false )
.RunOptions<Test> (); // run options parse and
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 is compatible. 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. |
-
net8.0
- No dependencies.
-
net9.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.
Fixed parsing values with character =