commandlineparser / commandlineparser/commandline

Issues with sub options

Open
#48 6 comments 0 reactions 0 assignees View on GitHub
postponed-after-issue-250-close_temp-label
Dominant language
C#
Stars
4.8k
Forks
478
PR merge metrics
No merged PRs in 30d

Description

**Issue by [wadewegner](https://github.com/wadewegner)**
_Thursday Oct 01, 2015 at 18:07 GMT_
_Originally opened as https://github.com/gsscoder/commandline/issues/249_

----

I'm having an issue with the parser not figuring out my sub-options.

Here's the code in `Main`:

```
var invokedVerb = "";
var invokedVerbInstance = new object();

var options = new Options();
if (!CommandLine.Parser.Default.ParseArguments(args, options,
(verb, subOptions) =>
{
// if parsing succeeds the verb name and correct instance
// will be passed to onVerbCommand delegate (string,object)
invokedVerb = verb;
if (!string.IsNullOrEmpty(invokedVerb))
invokedVerbInstance = subOptions;
}))
{
Environment.Exit(CommandLine.Parser.DefaultExitCodeFail);
}
```

This is pretty much right from the wiki.

My options are defined as this:

```
class Options
{
public Options()
{
CpVerb = new CPSubOptions { };
}

[VerbOption("cp", HelpText = "Interact with cp.")]
public CPSubOptions CpVerb { get; set; }

[HelpVerbOption]
public string GetUsage(string verb)
{
return HelpText.AutoBuild(this, verb);
}
}

class CPSubOptions
{
[Option('n', "name", HelpText = "Get details name.")]
public string Name { get; set; }
}
```

When I run with `cp` as the args, it works and the parser determines that `CPSubOptions` is the `subOptions` and `invokedVerbInstance` is set appropriately.

However, when I run with `cp --name blah` or `cp -n blah`, the `subOptions` is null, so it's not parsed properly.

Any help?

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.