module Kernel

Public Instance Methods

cloud_sh_exec(*cmd, env: nil) click to toggle source
# File lib/cloud/sh.rb, line 28
def cloud_sh_exec(*cmd, env: nil)
  cmd = cmd.flatten.map(&:to_s).join(" ")
  args = env ? [env, cmd] : [cmd]
  message = "Executing: #{cmd}"
  message << " (#{env.inspect})" if env
  stdout, stderr, status = Open3.capture3(*args)
  unless status.success?
    puts "Command: #{cmd}"
    puts "ENV: #{env.inspect}" if env
    puts "Stdout:\n#{stdout}\n"
    puts "Stderr:\n#{stderr}\n"
    raise "Command failed!!!"
  end
  stdout
end