Sha256: eb87e6ab272c1f5d38f257c6bcaf510b077a94d37bfadd439a5778cb98311396
Contents?: true
Size: 1.06 KB
Versions: 3
Compression:
Stored size: 1.06 KB
Contents
require 'open3' module Percheron module Actions class ExecLocal include Base def initialize(unit, scripts, description) @unit = unit @scripts = scripts @description = description end def execute! results = [] results << execute_scripts! results.compact.empty? ? nil : unit end private attr_reader :unit, :scripts, :description 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 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 end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
percheron-0.7.16 | lib/percheron/actions/exec_local.rb |
percheron-0.7.15 | lib/percheron/actions/exec_local.rb |
percheron-0.7.14 | lib/percheron/actions/exec_local.rb |