commandlineparser / commandlineparser/commandline
Implement --no-SOME_OPTION
- Dominant language
- C#
- Stars
- 4.8k
- Forks
- 478
- PR merge metrics
- No merged PRs in 30d
Description
I want these mutually exclusive options:
- --updateParts
- --not-updateParts
The default is to update parts, and it's disabled if the second flag is passed. The user needs to pass one flag or the other (so they don't get a behavior they didn't explicitly ask for).
Is there any way to do this? I had a go with this:
`class Options
{
private static bool _updateParts;
public Options(bool updateParts, bool doNotUpdateParts)
{
_updateParts = updateParts;
if (doNotUpdateParts) _updateParts = false;
}
[Option('c', "updateParts", SetName = "update", Required = true, Default = true)]
public static bool UpdateParts { get { return _updateParts; } }
[Option('C', "no-updateParts", SetName = "noUpdate", Required = true, Default = false)]
public static bool DoNotUpdateParts { get { return !_updateParts; } }
}`
Generally speaking this works, but it means I can't add two other options which are mutually exclusive. Imagine I now want to add:
- --doLogging
- --not-doLogging
I can't make them mutually exclusive because they don't belong to either set update or noUpdate.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.