class Pult::Executor
Constants
- NOEXEC
Attributes
runner[R]
Public Class Methods
new(command, dir, params={})
click to toggle source
# File lib/pult/executor.rb, line 25 def initialize command, dir, params={} @command = command @dir = dir @params = params.stringify_keys.transform_values {|v| v.to_s } @runner = { info: NOEXEC } end
run!(*args)
click to toggle source
# File lib/pult/executor.rb, line 15 def self.run! *args runner = Pult::Executor.new(*args) runner.run! runner.runner end
run_job!(*args)
click to toggle source
# File lib/pult/executor.rb, line 21 def self.run_job! *args Job.perform_later(*args) end
Public Instance Methods
run!()
click to toggle source
# File lib/pult/executor.rb, line 33 def run! if @command && @dir && @params execute! end end
Private Instance Methods
execute!()
click to toggle source
# File lib/pult/executor.rb, line 41 def execute! if screen = @params.delete("screen") execute_in_screen! screen else execute_here! end end
execute_here!()
click to toggle source
# File lib/pult/executor.rb, line 49 def execute_here! params = [ @params, @command, chdir: @dir ] with_env :default do Open3.popen3( *params ) do |stdin, stdout, stderr, thr| @runner = { stdout: stdout.read, stderr: stderr.read, info: thr.value } end end end
execute_in_screen!(screen)
click to toggle source
# File lib/pult/executor.rb, line 63 def execute_in_screen! screen args = { screen: screen, env: ENV_DEFAULT, params: @params, command: @command } @runner = Screener.run! args end