Module: Nagi::Utility

Defined in:
lib/nagi/utility.rb

Class Method Summary collapse

Class Method Details

.execute(command) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/nagi/utility.rb', line 5

def execute(command)
  command = command.gsub(/'/, "\'")
  if defined?(Open3.capture2)
    output, status = Open3.capture2e("/bin/bash -o pipefail -c '#{command}'")
  else
    IO.popen("/bin/bash -o pipefail -c '#{command}' 2>&1") do |io|
      output = io.read
    end
    status = $?
  end
  raise "Shell failure, '#{output.gsub(/^\/bin\/bash: /, '').strip}'" if status.exitstatus != 0
  return output.strip
end