Class: Inprovise::ScriptRunner
- Inherits:
-
Object
- Object
- Inprovise::ScriptRunner
- Defined in:
- lib/inprovise/script_runner.rb
Overview
Script runner for Inprovise
- Author
-
Martin Corino
- License
-
Distributes under the same license as Ruby
Defined Under Namespace
Classes: ValidationFailureError
Constant Summary collapse
- COMMANDS =
{apply: %w{Applying to}, revert: %w(Reverting on), validate: %w(Validating on)}
Instance Method Summary collapse
- #demonstrate(command_name, config = nil) ⇒ Object
- #execute(command_name, config = nil) ⇒ Object
-
#initialize(node, script, skip_dependencies = false) ⇒ ScriptRunner
constructor
A new instance of ScriptRunner.
- #script ⇒ Object
- #scripts ⇒ Object
- #set_index(index) ⇒ Object
Constructor Details
#initialize(node, script, skip_dependencies = false) ⇒ ScriptRunner
Returns a new instance of ScriptRunner.
9 10 11 12 13 14 15 16 |
# File 'lib/inprovise/script_runner.rb', line 9 def initialize(node, script, skip_dependencies=false) @node = node @script = script @index = Inprovise::ScriptIndex.default @perform = true @skip_dependencies = skip_dependencies @log = Inprovise::Logger.new(@node, script) end |
Instance Method Details
#demonstrate(command_name, config = nil) ⇒ Object
47 48 49 50 51 |
# File 'lib/inprovise/script_runner.rb', line 47 def demonstrate(command_name, config=nil) @perform = false execute(command_name, config) @perform = true end |
#execute(command_name, config = nil) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/inprovise/script_runner.rb', line 33 def execute(command_name, config=nil) Inprovise.log.local("#{COMMANDS[command_name].first} #{script.name} #{COMMANDS[command_name].last} #{@node.to_s}") scrs = scripts context = @perform ? Inprovise::ExecutionContext.new(@node, @log, @index, config) : Inprovise::MockExecutionContext.new(@node, @log, @index, config) context.config.command = command_name.to_sym scrs.each { |script| script.update_configuration(context) } scrs.each { |script| setup_configuration(script, context) } scrs.reverse! if command_name.to_sym == :revert @log.say(scrs.map(&:name).join(', '), :yellow) if Inprovise.verbosity > 0 scrs.each do |script| send(:"execute_#{command_name}", script, context) end end |
#script ⇒ Object
22 23 24 |
# File 'lib/inprovise/script_runner.rb', line 22 def script Inprovise::Script === @script ? @script : @index.get(@script) end |
#scripts ⇒ Object
26 27 28 29 30 31 |
# File 'lib/inprovise/script_runner.rb', line 26 def scripts return [script] if @skip_dependencies resolver = Inprovise::Resolver.new(script, @index) resolver.resolve resolver.scripts end |
#set_index(index) ⇒ Object
18 19 20 |
# File 'lib/inprovise/script_runner.rb', line 18 def set_index(index) @index = index end |