From 7adee6d62fabae0244d611069f09ab906a459805 Mon Sep 17 00:00:00 2001 From: Shaun Jackman Date: Fri, 1 Dec 2017 15:00:27 -0800 Subject: Utils.popen_read: Nonexistent program should fail Ensure that $CHILD_STATUS.success? is false when the command does not exist. --- Library/Homebrew/utils/popen.rb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'Library/Homebrew/utils') diff --git a/Library/Homebrew/utils/popen.rb b/Library/Homebrew/utils/popen.rb index 2fa3ade46..21dceec06 100644 --- a/Library/Homebrew/utils/popen.rb +++ b/Library/Homebrew/utils/popen.rb @@ -14,7 +14,15 @@ module Utils yield pipe else options[:err] ||= :close unless ENV["HOMEBREW_STDERR"] - exec(*args, options) + begin + exec(*args, options) + rescue Errno::ENOENT + $stderr.puts "brew: command not found: #{args[0]}" unless options[:err] == :close + exit! 127 + rescue SystemCallError + $stderr.puts "brew: exec failed: #{args[0]}" unless options[:err] == :close + exit! 1 + end end end end -- cgit v1.2.3