class Bcome::Command::Local

Attributes

process_status[R]
stderr[R]
stdout[R]

Public Class Methods

new(command, success_exit_codes = [0]) click to toggle source
# File lib/objects/command/local.rb, line 15
def initialize(command, success_exit_codes = [0])
  @command = command
  @success_exit_codes = success_exit_codes
end
run(raw_command, _success_exit_codes = [0]) click to toggle source
# File lib/objects/command/local.rb, line 7
def self.run(raw_command, _success_exit_codes = [0])
  command = new(raw_command)
  command.syscall
  command
end

Public Instance Methods

exit_code() click to toggle source
# File lib/objects/command/local.rb, line 26
def exit_code
  @process_status ? @process_status.exitstatus : 1
end
failed?() click to toggle source
# File lib/objects/command/local.rb, line 34
def failed?
  !is_success?
end
is_success?() click to toggle source
# File lib/objects/command/local.rb, line 30
def is_success?
  @success_exit_codes.include?(exit_code)
end
pretty_result() click to toggle source
# File lib/objects/command/local.rb, line 38
def pretty_result
  is_success? ? "success / exit code: #{exit_code}".success : "failure / exit code: #{exit_code}".error
end
syscall() click to toggle source
# File lib/objects/command/local.rb, line 20
def syscall
  @stdout, @stderr, @process_status = Open3.capture3(@command)
rescue Exception => e
  @stderr = e.message
end