Skip to content


Subversion checkout URL

You can clone with
Download ZIP


subcommands? #46

joelmccracken opened this Issue · 7 comments

3 participants


I have recently been using Boson to act as a managing point for project commands, which ultimately is similar in spirit to the '37'/sub command. However, my project has a few logically separate components. For example, you may have a project which has a customer-facing Rails project, and a separate API project.

I would like to be able to separate the commands for one project from the commands from another. Is there a good way to handle this?


Yeeesh. Sorry for the delay.

Yep. If you've looked over this section of the readme, you'll see that you can write your own executables with boson. So you can decouple commands into as many separate executables as you want.


Ah. But there is no way to handle a "nesting" of commands, on the level of complexity used by things like bundler, gem, rvm?


You can have subcommands as shown in the readme but boson isn't designed for further levels of nesting. You could have a subcommand support another level of nesting by switching functionality based on its first arg.


I see. Do you think this would be terribly difficult to implement? I may be interested in investigating.


Depends on how much of a dsl you want. Either way, I wouldn't take such a feature into a core. boson's core has been slimmed down to encourage plugins. I would recommend trying it first in your executable and then trying to convert it into a boson plugin


Closing. Feel free to ping if there's more to discuss

@cldwalker cldwalker closed this

Sorry about the comment on the closed issue. But the question is related. Is namespacing an option to provide this functionality? I looked over boson-more/namespacer, however I was unable to figure out how to use it in this context. Is there an example somewhere?

Thank you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.