Class: VagrantPlugins::Triggers::DSL
- Inherits:
-
Object
- Object
- VagrantPlugins::Triggers::DSL
- Defined in:
- lib/vagrant-triggers/dsl.rb
Instance Method Summary collapse
-
#initialize(ui, options = {}) ⇒ DSL
constructor
A new instance of DSL.
- #method_missing(method, *args, &block) ⇒ Object
- #run(raw_command, options = {}) ⇒ Object (also: #execute)
Constructor Details
#initialize(ui, options = {}) ⇒ DSL
Returns a new instance of DSL.
8 9 10 11 12 |
# File 'lib/vagrant-triggers/dsl.rb', line 8 def initialize(ui, = {}) @logger = Log4r::Logger.new("vagrant::plugins::triggers::dsl") @options = @ui = ui end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args, &block) ⇒ Object
35 36 37 38 39 40 41 42 |
# File 'lib/vagrant-triggers/dsl.rb', line 35 def method_missing(method, *args, &block) # If the @ui object responds to the given method, call it if @ui.respond_to?(method) @ui.send(method, *args, *block) else super(method, *args, &block) end end |
Instance Method Details
#run(raw_command, options = {}) ⇒ Object Also known as: execute
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/vagrant-triggers/dsl.rb', line 14 def run(raw_command, = {}) @ui.info I18n.t("vagrant_triggers.action.trigger.executing_command", :command => raw_command) command = Shellwords.shellsplit(raw_command) env_backup = ENV.to_hash begin build_environment result = Vagrant::Util::Subprocess.execute(command[0], *command[1..-1]) rescue Vagrant::Errors::CommandUnavailable, Vagrant::Errors::CommandUnavailableWindows raise Errors::CommandUnavailable, :command => command[0] ensure ENV.replace(env_backup) end if result.exit_code != 0 && !@options[:force] raise Errors::CommandFailed, :command => raw_command, :stderr => result.stderr end if @options[:stdout] @ui.info I18n.t("vagrant_triggers.action.trigger.command_output", :output => result.stdout) end end |