lib/paraduct/runner.rb in paraduct-1.0.0.beta6 vs lib/paraduct/runner.rb in paraduct-1.0.0
- old
+ new
@@ -23,11 +23,11 @@
# @param script [String, Array<String>] script file, script(s)
# @return [String] stdout
# @raise [Paraduct::Errors::ProcessError] command exited error status
def perform(script)
export_variables = @params.reverse_merge("PARADUCT_JOB_ID" => @job_id, "PARADUCT_JOB_NAME" => job_name)
- variable_string = export_variables.map{ |key, value| %(export #{key}="#{value}";) }.join(" ")
+ variable_string = export_variables.map { |key, value| %(export #{key}="#{value}";) }.join(" ")
Array.wrap(script).inject("") do |stdout, command|
stdout << run_command("#{variable_string} #{command}")
stdout
end
@@ -36,15 +36,15 @@
def job_dir
Pathname(@base_job_dir).join(job_name)
end
def job_name
- @params.map { |key, value| "#{key}_#{value}" }.join("_").gsub(%r([/ ]), "_")
+ @params.map { |key, value| "#{key}_#{value}" }.join("_").gsub(%r{[/ ]}, "_")
end
def formatted_params
- @params.map{ |key, value| "#{key}=#{value}" }.join(", ")
+ @params.map { |key, value| "#{key}=#{value}" }.join(", ")
end
def logger
unless @logger
stdout_logger = Paraduct::ColoredLabelLogger.new(formatted_params)
@@ -55,33 +55,33 @@
@logger
end
private
- def run_command(command)
- full_stdout = ""
- exit_status = nil
+ def run_command(command)
+ full_stdout = ""
+ exit_status = nil
- logger.info "run_command: #{command}"
+ logger.info "run_command: #{command}"
- PTY.spawn(command) do |stdin, stdout, pid|
- stdout.close_write
- stdin.sync = true
+ PTY.spawn(command) do |stdin, stdout, pid|
+ stdout.close_write
+ stdin.sync = true
- begin
- stdin.each do |line|
- line.strip!
- logger.info line
- full_stdout << "#{line}\n"
+ begin
+ stdin.each do |line|
+ line.strip!
+ logger.info line
+ full_stdout << "#{line}\n"
+ end
+ rescue Errno::EIO # rubocop:disable Lint/HandleExceptions
+ ensure
+ _, exit_status = Process.waitpid2(pid)
end
- rescue Errno::EIO
- ensure
- _, exit_status = Process.waitpid2(pid)
end
- end
- raise Paraduct::Errors::ProcessError.new(full_stdout, exit_status) unless exit_status.success?
+ raise Paraduct::Errors::ProcessError.new(full_stdout, exit_status) unless exit_status.success?
- full_stdout
- end
+ full_stdout
+ end
end
end