using System.Collections.Generic;
public enum FunctionModelingMode
public static void Main()
var text = "--function-modeling None,Database,CodeModels -q a.litedb";
var result = CommandLine.Parser.Default.ParseArguments<Options>(args).MapResult((opts) => RunOptionsAndReturnExitCode(opts),
errs => HandleParseError(errs));
Console.WriteLine("Return code= {0}", result);
static int RunOptionsAndReturnExitCode(Options o)
Console.WriteLine("Success");
var props = o.FunctionModelingMode;
Console.WriteLine("props= {0}", props);
static int HandleParseError(IEnumerable<Error> errs)
Console.WriteLine("errors {0}", errs.Count());
if (errs.Any(x => x is HelpRequestedError || x is VersionRequestedError))
Console.WriteLine("Exit code {0}", result);
[Option("function-modeling", Separator=',', HelpText = "Comma-separated function modeling modes. Valid values: None, Database, CodeModels, Summaries", Default = new[] { FunctionModelingMode.Summaries })]
public IEnumerable<FunctionModelingMode> _functionModelingModes { private get; set; }
public bool q { get;set; }
[Value(0, HelpText = "List of LiteDB files")]
public IList<string> LiteDbFiles { get; set; }
public FunctionModelingMode FunctionModelingMode { get { return _functionModelingModes.Aggregate(FunctionModelingMode.None, (o, c) => o | c); }}