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.
This commit is contained in:
Max Howell 2009-11-11 19:42:35 +00:00
parent 627034c441
commit 4bd32c615e
2 changed files with 4 additions and 3 deletions

View File

@ -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 = ''

View File

@ -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?