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 |