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 check Examples 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.dll This is root command: ParamDefaultValue% $> dotnet NFlags.QuickStart.dll xxx This is root command: xxx $> dotnet NFlags.QuickStart.dll --help Usage: 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 subcommand This is subcommand: SubParameterValue $> dotnet NFlags.QuickStart.dll subcommand yyy This is subcommand: yyy $> dotnet NFlags.QuickStart.dll command --help Usage: 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 $>