


Simple yet powerfull library to made parsing CLI arguments easy.Library also allow to print usage help and application version "out of box".
For example of usage checkExamples directory.
- Install NFLags from NuGet.
- Start new console project.
- Configure NFLags:
Cli.Configure(configure=>configure.SetDialect(Dialect.Gnu).SetName("QuickStart").SetDescription("This is NFlags").EnableVersionOption()).Root(rc=>rc.RegisterFlag("flag1","f","Flag description",false).RegisterOption("option","o","Option description","optionDefaultValue").RegisterParameter("param","Param description","ParamDefaultValue").RegisterCommand("subcommand","Subcommand Description", sc=>sc.SetExecute((commandArgs,output)=>output.WriteLine("This is subcommand: "+commandArgs.GetParameter<string>("SubParameter"))).RegisterParameter("SubParameter","SubParameter description","SubParameterValue")).RegisterParamSeries("paramSeries","paramSeriesDescription").SetExecute((commandArgs,output)=>output.WriteLine("This is root command: "+commandArgs.GetParameter<string>("param")))).Run(args);
Run application and enjoy:
$> dotnet NFlags.QuickStart.dllThis is root command: ParamDefaultValue%$> dotnet NFlags.QuickStart.dll xxxThis is root command: xxx$> dotnet NFlags.QuickStart.dll --helpUsage: QuickStart [COMMAND] [OPTIONS]... [PARAMETERS]...This is NFlags Commands: command Sub command Description Parameters: <param> Param description (Default: 'ParamDefaultValue') <paramSeries...> paramSeriesDescription Options: --flag1, -f Flag description --option <option>, -o <option> Option description (Default: 'optionDefaultValue') --help, -h Prints this help --version, -v Prints application version$> dotnet NFlags.QuickStart.dll subcommandThis is subcommand: SubParameterValue$> dotnet NFlags.QuickStart.dll subcommand yyyThis is subcommand: yyy$> dotnet NFlags.QuickStart.dll command --helpUsage: QuickStart command [OPTIONS]... [PARAMETERS]...This is NFlags Parameters: <Parameter> Sub parameter description (Default: 'SubParameterValue') Options: --help, -h Prints this help --version, -v Prints application version$>
See details on NFlags GitHub pages