class PmdTester::Cmd

Containing the common method for executing shell command

Public Class Methods

execute(cmd) click to toggle source
# File lib/pmdtester/cmd.rb, line 9
def self.execute(cmd)
  stdout, _stderr, _status = internal_execute(cmd)
  stdout&.chomp!
  stdout
end
stderr_of(cmd) click to toggle source
# File lib/pmdtester/cmd.rb, line 15
def self.stderr_of(cmd)
  _stdout, stderr, _status = internal_execute(cmd)
  stderr
end

Private Class Methods

internal_execute(cmd) click to toggle source
# File lib/pmdtester/cmd.rb, line 20
def self.internal_execute(cmd)
  logger.debug "execute command '#{cmd}'"

  stdout, stderr, status = Open3.capture3("#{cmd};")

  logger.debug stdout
  unless status.success?
    logger.error stdout
    logger.error stderr
    raise CmdException.new(cmd, stderr)
  end

  stdout&.chomp!

  [stdout, stderr, status]
end