Sha256: f6a2a56203624f486a24219a7d4225c3b44fc2ffccb029bf1d92bc103ed31db9

Contents?: true

Size: 1.01 KB

Versions: 12

Compression:

Stored size: 1.01 KB

Contents

require 'r10k/logging'
require 'r10k/errors'

require 'systemu'

module R10K
module Execution
  include R10K::Logging

  # Execute a command and return stdout
  #
  # @params [String] cmd
  # @params [Hash] opts
  #
  # @option opts [String] :event An optional log event name. Defaults to cmd.
  #
  # @raise [R10K::ExecutionFailure] If the executed command exited with a
  #   nonzero exit code.
  #
  # @return [String] the stdout from the command
  def execute(cmd, opts = {})

    event = opts[:event] || cmd

    logger.debug1 "Execute: #{event.inspect}"

    status, stdout, stderr = systemu(cmd)

    logger.debug2 "[#{event}] STDOUT: #{stdout.chomp}" unless stdout.empty?
    logger.debug2 "[#{event}] STDERR: #{stderr.chomp}" unless stderr.empty?

    unless status == 0
      msg = "#{cmd.inspect} returned with non-zero exit value #{status.exitstatus}"
      e = R10K::ExecutionFailure.new(msg)
      e.exit_code = status
      e.stdout    = stdout
      e.stderr    = stderr
      raise e
    end
    stdout
  end
end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
r10k-1.1.4 lib/r10k/execution.rb
r10k-1.1.3 lib/r10k/execution.rb
r10k-1.1.2 lib/r10k/execution.rb
r10k-1.1.1 lib/r10k/execution.rb
r10k-1.1.1rc1 lib/r10k/execution.rb
r10k-1.1.0 lib/r10k/execution.rb
r10k-1.1.0rc1 lib/r10k/execution.rb
r10k-1.0.0 lib/r10k/execution.rb
r10k-1.0.0rc4 lib/r10k/execution.rb
r10k-1.0.0rc3 lib/r10k/execution.rb
r10k-1.0.0rc2 lib/r10k/execution.rb
r10k-1.0.0rc1 lib/r10k/execution.rb