aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/formula.rb66
1 files changed, 34 insertions, 32 deletions
diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb
index 3f09b14e3..9048803ef 100644
--- a/Library/Homebrew/formula.rb
+++ b/Library/Homebrew/formula.rb
@@ -510,44 +510,46 @@ class Formula
mkdir_p(logd)
log = File.open(logfn, "w")
- log.puts Time.now, "", cmd, args, ""
- log.flush
-
- if verbose
- rd, wr = IO.pipe
- begin
- pid = fork do
- rd.close
- log.close
- exec_cmd(cmd, args, wr, logfn)
- end
- wr.close
+ begin
+ log.puts Time.now, "", cmd, args, ""
+ log.flush
- while buf = rd.gets
- log.puts buf
- puts buf
+ if verbose
+ rd, wr = IO.pipe
+ begin
+ pid = fork do
+ rd.close
+ log.close
+ exec_cmd(cmd, args, wr, logfn)
+ end
+ wr.close
+
+ while buf = rd.gets
+ log.puts buf
+ puts buf
+ end
+ ensure
+ rd.close unless rd.closed?
end
- ensure
- rd.close unless rd.closed?
+ else
+ pid = fork { exec_cmd(cmd, args, log, logfn) }
end
- else
- pid = fork { exec_cmd(cmd, args, log, logfn) }
- end
- Process.wait(pid)
+ Process.wait(pid)
- $stdout.flush
+ $stdout.flush
- unless $?.success?
- log.flush
- Kernel.system "/usr/bin/tail", "-n", "5", logfn unless verbose
- log.puts
- require 'cmd/config'
- Homebrew.dump_build_config(log)
- raise BuildError.new(self, cmd, args)
- end
- ensure
- log.close if log && !log.closed?
+ unless $?.success?
+ log.flush
+ Kernel.system "/usr/bin/tail", "-n", "5", logfn unless verbose
+ log.puts
+ require 'cmd/config'
+ Homebrew.dump_build_config(log)
+ raise BuildError.new(self, cmd, args)
+ end
+ ensure
+ log.close unless log.closed?
+ end
end
private