From ad27b21cd11a4e28f4174ebb54df357d6b6221a0 Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Sat, 5 Jul 2014 13:50:54 -0500 Subject: Add popen wrapper that does not invoke the shell --- Library/Homebrew/utils/popen.rb | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 Library/Homebrew/utils/popen.rb (limited to 'Library/Homebrew/utils') diff --git a/Library/Homebrew/utils/popen.rb b/Library/Homebrew/utils/popen.rb new file mode 100644 index 000000000..83f140163 --- /dev/null +++ b/Library/Homebrew/utils/popen.rb @@ -0,0 +1,20 @@ +module Utils + def self.popen_read(*args, &block) + popen(args, "rb", &block) + end + + def self.popen_write(*args, &block) + popen(args, "wb", &block) + end + + def self.popen(args, mode) + IO.popen("-", mode) do |pipe| + if pipe + yield pipe + else + STDERR.reopen("/dev/null", "w") + exec(*args) + end + end + end +end -- cgit v1.2.3