FlowCommandLine 1.0.6

dotnet add package FlowCommandLine --version 1.0.6
                    
NuGet\Install-Package FlowCommandLine -Version 1.0.6
                    
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="FlowCommandLine" Version="1.0.6" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FlowCommandLine" Version="1.0.6" />
                    
Directory.Packages.props
<PackageReference Include="FlowCommandLine" />
                    
Project file
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 FlowCommandLine --version 1.0.6
                    
#r "nuget: FlowCommandLine, 1.0.6"
                    
#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.
#addin nuget:?package=FlowCommandLine&version=1.0.6
                    
Install FlowCommandLine as a Cake Addin
#tool nuget:?package=FlowCommandLine&version=1.0.6
                    
Install FlowCommandLine as a Cake Tool

CI nugeticon

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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • 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.

Version Downloads Last updated
1.0.6 141 10 days ago
1.0.5 103 13 days ago
1.0.4 444 18 days ago
1.0.3 61 21 days ago
1.0.2 46 a month ago
1.0.1 133 a month ago
1.0.0 124 a month ago

Fixed parsing values with character =