class Percheron::Actions::ExecLocal
Attributes
description[R]
scripts[R]
unit[R]
Public Class Methods
new(unit, scripts, description)
click to toggle source
# File lib/percheron/actions/exec_local.rb, line 8 def initialize(unit, scripts, description) @unit = unit @scripts = scripts @description = description end
Public Instance Methods
execute!()
click to toggle source
# File lib/percheron/actions/exec_local.rb, line 14 def execute! results = [] results << execute_scripts! results.compact.empty? ? nil : unit end
Private Instance Methods
execute_command!(command)
click to toggle source
# File lib/percheron/actions/exec_local.rb, line 33 def execute_command!(command) $logger.info "Executing #{description} script '#{command}' locally" Open3.popen2e(command) do |_, stdout_stderr, _| while (line = stdout_stderr.gets) $logger.debug line.strip end end end
execute_scripts!()
click to toggle source
# File lib/percheron/actions/exec_local.rb, line 24 def execute_scripts! $logger.debug "Executing #{description} scripts '#{scripts.inspect}' locally" scripts.each do |script| in_working_directory(base_dir) do execute_command!('/bin/sh -x %s 2>&1' % [ Pathname.new(File.expand_path(script)) ]) end end end