class EZAPIClient::ExecCommand

Public Class Methods

call(command, logger = nil) click to toggle source
# File lib/ezapi_client/services/exec_command.rb, line 7
def self.call(command, logger = nil)
  self.new(command: command).(logger)
end

Public Instance Methods

call(logger = nil) click to toggle source
# File lib/ezapi_client/services/exec_command.rb, line 11
def call(logger = nil)
  stdout_str, stderr_str, status = Open3.capture3(command)
  unless status.success?
    error_msgs = [
      stdout_str,
      stderr_str,
    ].reject { |str| str == "" }.compact.join("; ")
    msg = ["Error executing command:", error_msgs].join(" ")
    logger.error(EZAPIClient::LOG_PROGNAME) { msg } if logger
    fail ArgumentError, msg
  end
  stdout_str.chomp
end