module Gem::Util

def self.popen *command

def self.popen *command
  IO.popen command, &:read
rescue TypeError # ruby 1.8 only supports string command
  r, w = IO.pipe
  pid = fork do
    STDIN.close
    STDOUT.reopen w
    exec(*command)
  end
  w.close
  begin
    return r.read
  ensure
    Process.wait pid
  end
end