dry-rb/dry-cli

Conflicting aliases between global and command options.

Open

#133 opened on Oct 30, 2023

View on GitHub
 (2 comments) (0 reactions) (0 assignees)Ruby (39 forks)github user discovery
bughelp wanted

Repository metrics

Stars
 (354 stars)
PR merge metrics
 (PR metrics pending)

Description

Describe the bug

When global options are defined in a Base command class from which all other commands are derived, it is possible for an alias in the global space to be "re-used" in the command space. For example if "-v" is an alias for :verbose in the global space and a command implements and option :validate with a "-v" alias there is now a conflict. I'm not sure what the current functionality is when dealing with this kind of conflict. It might be the command options rule; or, the global options rule. My preference would be to add a notation to the help text that calls out the conflict as a warning.... or maybe something else.

To Reproduce

Provide detailed steps to reproduce, an executable script would be best.

Expected behavior

In my Github repo MadBomber/experiments/cli_options/dry-cli

The base command defines -x for :xyzzy, and :exec command defines -x for the :exit option.

My environment

  • Affects my production application: NO
  • Ruby version: ... 3.2.2
  • OS: ... MacOS::HighSerria

Contributor guide