add MarkIfFlagPresentThenOthersRequired #2200
Open
+108
−15
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR introduces a new flag group function,
MarkIfFlagPresentThenOthersRequired
, which enforces a "one-way required together" relationship among flags. This means that if a primary flag is set, then other dependent flags must also be set. This allows users to make certain flags conditionally required based on the presence of another flag, while maintaining flexibility when the primary flag is not provided.Example
Consider a command called
get-range
that uses the flags--start
and--end
to specify a date range. By default, the command can run without either flag, using default start and end values (e.g.,start=someDefaultStart
andend=Now
). However, you may want to enforce that if the user specifies an--end
, they must also specify a--start
.--end=value
, it will trigger an error because--start
is missing.--start
, it will run using the default values or the provided start date.This change makes it easier to enforce dependencies between flags while allowing flexible defaults when the primary flag is not specified.