matejak / argbash

Bash argument parsing code generator
Other
1.39k stars 63 forks source link

Feature Request: GIT style commands with arguments #184

Open myramoki opened 10 months ago

myramoki commented 10 months ago

I would really like to be able to use Argbash to create a GIT style argument processing. This would allow for a couple different items.

  1. Define arguments to parse at the global level
  2. Define multiple commands like GIT has
  3. Define arguments associated with specific commands.

Processing would allow a script with the following form:

script-name [ global-arguments... ] cmd-name [ cmd-specific-args... ]

Then I could use it to create scripts where I could call it like:

prodadm -debug install -name games

I was envisioning a configuration syntax of new ARG_CMD... options, which associate the argument processing with a specific command, and allow the same argument name to be used in different ways for different commands.

# ARG_CMD([cmd], [optional short form], [optional command help msg])
# ARG_CMD_OPTIONAL_SINGLE([cmd], [option], [o], [optional argument help msg])
# ARG_CMD_OPTIONAL_BOOLEAN([cmd], [print], , [boolean optional argument help msg])
# ARG_CMD_POSITIONAL_SINGLE([cmd], [positional-arg], [positional argument help  msg], )
# ARG_CMD_HELP([cmd], [The general script's help msg])
zhando commented 9 months ago

Otherwise known as command subcommand.. Yes I was looking for this too. I don't believe it's easy to do with argbash at the moment. Off the top of my head, perhaps one can pass all arguments through to all the functions and the functions can just ignore what doesn't apply. Doesn't seem too elegant.

First time here and it seems development has halted on argbash. Too bad.