From 8bf28477a3da58ea5c6113d9ce3228c08c4c0ec0 Mon Sep 17 00:00:00 2001 From: Shaun Jackman Date: Tue, 19 Sep 2017 10:18:04 -0700 Subject: 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(-) (limited to 'Library/Homebrew/utils') diff --git a/Library/Homebrew/utils/popen.rb b/Library/Homebrew/utils/popen.rb index 4e03711a1..f30a2a0fe 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 -- cgit v1.2.3 From 58a1bd6dbf0b041b3c5c23dc190680e82bf64ae0 Mon Sep 17 00:00:00 2001 From: Shaun Jackman Date: Wed, 20 Sep 2017 11:58:52 -0700 Subject: popen: Do not suppress stderr when HOMEBREW_STDERR --- Library/Homebrew/utils/popen.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Library/Homebrew/utils') diff --git a/Library/Homebrew/utils/popen.rb b/Library/Homebrew/utils/popen.rb index f30a2a0fe..2fa3ade46 100644 --- a/Library/Homebrew/utils/popen.rb +++ b/Library/Homebrew/utils/popen.rb @@ -13,7 +13,7 @@ module Utils return pipe.read unless block_given? yield pipe else - options[:err] ||= :close + options[:err] ||= :close unless ENV["HOMEBREW_STDERR"] exec(*args, options) end end -- cgit v1.2.3