From 4bd32c615eedb7f0382ce17dc5622a16675ff112 Mon Sep 17 00:00:00 2001 From: Max Howell Date: Wed, 11 Nov 2009 19:42:35 +0000 Subject: [PATCH] Fix system() exception showing regression Rather than showing a backtrace that says "couldn't find command blah". Admittedly it's possible that the error will be something else, but unlikely. And this is neater. Ideally we'd push the bt through an error pipe like we do with install.rb. And I guess we'll do this eventually. --- Library/Homebrew/formula.rb | 3 ++- Library/Homebrew/utils.rb | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index 10f1429be3..5d3564476c 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -226,7 +226,8 @@ protected rd.close $stdout.reopen wr $stderr.reopen wr - exec cmd, *args + exec(cmd, *args) rescue nil + exit! 1 # never gets here unless exec threw or failed end wr.close out = '' diff --git a/Library/Homebrew/utils.rb b/Library/Homebrew/utils.rb index a96d0e2ae7..8ec87b5087 100644 --- a/Library/Homebrew/utils.rb +++ b/Library/Homebrew/utils.rb @@ -88,8 +88,8 @@ end def safe_system cmd, *args puts "#{cmd} #{args*' '}" if ARGV.verbose? fork do - trap("EXIT") {} # no bt on exit from this short-lived fork - exit! 1 unless exec(cmd, *args) + exec(cmd, *args) rescue nil + exit! 1 # never gets here unless exec failed end Process.wait raise ExecutionError.new(cmd, args, $?) unless $?.success?