class Shred::Commands::ShellCommand
Attributes
command_lines[R]
error_msg[R]
out[R]
output[R]
success_msg[R]
Public Class Methods
new(command_lines: nil, success_msg: nil, error_msg: nil, output: nil)
click to toggle source
# File lib/shred/commands/base.rb, line 61 def initialize(command_lines: nil, success_msg: nil, error_msg: nil, output: nil) @command_lines = Array(command_lines).compact raise ArgumentError, "At least one command line is required" if command_lines.empty? @success_msg = success_msg @error_msg = error_msg @output = output @out = if output && output.respond_to?(:write) output elsif output File.open(output, 'w') end end
Public Instance Methods
run() { |command_line| ... }
click to toggle source
# File lib/shred/commands/base.rb, line 74 def run(&block) exit_status = nil command_lines.each_with_index do |command_line, i| command_line = CommandLine.new(command_line: command_line, out: out) exit_status = if block_given? yield(command_line) else command_line.run end break unless exit_status.success? end exit_status ensure out.close if out end