class EacRubyUtils::Envs::ExecutionResult

def exit_code_zero?

def exit_code_zero?
  r[:exit_code]&.zero?
end

def exit_code_zero_result

def exit_code_zero_result
  r[options[:output] || :stdout]
end

def expected_error?

def expected_error?
  options[:exit_outputs].is_a?(Hash) && options[:exit_outputs].key?(r[:exit_code])
end

def expected_error_result

def expected_error_result
  options[:exit_outputs][r[:exit_code]]
end

def initialize(result, options)

def initialize(result, options)
  @r = result
  @options = options
end

def result

def result
  return exit_code_zero_result if exit_code_zero?
  return expected_error_result if expected_error?
  raise ::EacRubyUtils::Envs::ExecutionError, 'Failed!'
end

def success?

def success?
  exit_code_zero? || expected_error?
end