Module: ChefWorkflow::KnifePluginSupport
- Included in:
- VM::ChefServerProvisioner, VM::KnifeProvisioner
- Defined in:
- lib/chef-workflow/support/knife-plugin.rb
Overview
Mixin to add methods to assist with creating knife plugins.
Instance Method Summary collapse
-
#init_knife_plugin(klass, args) ⇒ Object
Given a class name for a plugin compatible with the Chef::Knife interface, initializes it and makes it available for execution.
Instance Method Details
#init_knife_plugin(klass, args) ⇒ Object
Given a class name for a plugin compatible with the Chef::Knife interface, initializes it and makes it available for execution. It also overrides the ‘ui` object to use `StringIO` objects, which allow you to choose when and if you display the output of the commands by referencing `obj.ui.stdout.string` and similar calls.
The second argument is an array of arguments to the command, such as they would be presented to a command line tool as ‘ARGV`.
21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/chef-workflow/support/knife-plugin.rb', line 21 def init_knife_plugin(klass, args) klass. = Chef::Application::Knife..merge(klass.) klass.load_deps cli = klass.new(args) cli.ui = Chef::Knife::UI.new( StringIO.new('', 'w'), StringIO.new('', 'w'), StringIO.new('', 'r'), cli.config ) return cli end |