class Chef::Knife::Rehash

Public Instance Methods

reload_plugins() click to toggle source
# File lib/chef/knife/rehash.rb, line 42
def reload_plugins
  # The subcommand_loader for this knife command should _always_ be the GemGlobLoader.  The GemGlobLoader loads
  # plugins from disc and ensures the hash we write is always correct.  By this point it should also already have
  # loaded plugins and `load_commands` shouldn't have an effect.
  Chef::Knife.subcommand_loader.load_commands
end
run() click to toggle source
# File lib/chef/knife/rehash.rb, line 30
def run
  if ! Chef::Knife::SubcommandLoader.autogenerated_manifest?
    ui.msg "Using knife-rehash will speed up knife's load time by caching the location of subcommands on disk."
    ui.msg "However, you will need to update the cache by running `knife rehash` anytime you install a new knife plugin."
  else
    reload_plugins
  end

  ui.msg "Knife subcommands are cached in #{Chef::Knife::SubcommandLoader.plugin_manifest_path}. Delete this file to disable the caching."
  Chef::Knife::SubcommandLoader.write_hash(Chef::Knife::SubcommandLoader.generate_hash)
end