From 8bf28477a3da58ea5c6113d9ce3228c08c4c0ec0 Mon Sep 17 00:00:00 2001 From: Shaun Jackman Date: Tue, 19 Sep 2017 10:18:04 -0700 Subject: [PATCH] popen: Add an options argument Useful for selectively enabling or silencing stderr, for example. popen_read("foo", err: :err) --- Library/Homebrew/utils/popen.rb | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Library/Homebrew/utils/popen.rb b/Library/Homebrew/utils/popen.rb index 4e03711a16..f30a2a0fed 100644 --- a/Library/Homebrew/utils/popen.rb +++ b/Library/Homebrew/utils/popen.rb @@ -1,20 +1,20 @@ module Utils - def self.popen_read(*args, &block) - popen(args, "rb", &block) + def self.popen_read(*args, **options, &block) + popen(args, "rb", options, &block) end - def self.popen_write(*args, &block) - popen(args, "wb", &block) + def self.popen_write(*args, **options, &block) + popen(args, "wb", options, &block) end - def self.popen(args, mode) + def self.popen(args, mode, options = {}) IO.popen("-", mode) do |pipe| if pipe return pipe.read unless block_given? yield pipe else - $stderr.reopen("/dev/null", "w") - exec(*args) + options[:err] ||= :close + exec(*args, options) end end end