Details
Description
Knife should have the ability to load commands from arbitrary directories.
Chatting with the folks on IRC, people want the following behaviors/features:
- There should be a "site-plugins" plugin directory, ~/.chef/knife-plugins/ for example, so users can hack something up and have it work right away without additional packaging/hassle
- for knife plugins that are distributed as gems or installed to the ruby load path, plugins should be opt-in
Opt-in can be accomplished with a set of knife plugin commands, like {{knife plugin [list,enable,disable]}} or some autodetect feature that asks for user confirmation either on first time knife is run after plugin install, or via a "command_missing" type system where the user runs knife $new_plugin_command and knife would find it if missing and prompt for install.
I'm kinda partial to the {{knife plugin [list,enable,disable]}} approach, as I think it's more discoverable--you can find what plugins you have available without knowing their exact names in advance.
Awesome.
I just added per-directory knife configurations, some of which might become useful in this as well.