Skip to content

EmptyFlow/FlowCommandLine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CI nugeticon

FlowCommandLine

FlowCommandLine is a C# library available on Nuget that is 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
            FlowCommandParameter.CreateRequired("p1", "param1", "parameter 1 description"), // use factory methods for required parameter
            FlowCommandParameter.CreateRequired("p3", "param3", "parameter 3 description"), 
            FlowCommandParameter.Create("p4", "param4", "parameter description"), // use factory method for non required parameter
            FlowCommandParameter.Create("p2", "param2", "parameter2 description")
        }
    )
    .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 

About

Command line parser and processor

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published

Languages