chef
https://github.com/opscode/chef
Ruby
A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure.
Chef::Knife::SubcommandLoader::GemGlobLoader#gem_and_builtin_subcommands
Returns a Hash of paths to knife commands built-in to chef, or installed via gem.
If rubygems is not installed, falls back to globbing the knife directory.
The Hash is of the form {"relative/path" => "/absolute/path"}
--
Note: the "right" way to load the plugins is to require the relative path, i.e.,
require 'chef/knife/command'
but we're getting frustrated by bugs at every turn, and it's slow besides. So
subcommand loader has been modified to load the plugins by using Kernel.load
with the absolute path.Edit
git clone [email protected]:opscode/chef.git
cd chef
open knife/lib/chef/knife/core/gem_glob_loader.rb
Contribute
# Make a new branchgit checkout -b -your-name--update-docs-Chef--Knife--SubcommandLoader--GemGlobLoader-gem_and_builtin_subcommands-for-pr
# Commit to gitgit add knife/lib/chef/knife/core/gem_glob_loader.rbgit commit -m "better docs for Chef::Knife::SubcommandLoader::GemGlobLoader#gem_and_builtin_subcommands"
# Open pull requestgem install hub # on a mac you can `brew install hub`
hub fork
git push <your name> -your-name--update-docs-Chef--Knife--SubcommandLoader--GemGlobLoader-gem_and_builtin_subcommands-for-pr
hub pull-request
# Celebrate!