diff options
| author | Jack Nagel | 2014-09-05 15:13:52 -0500 |
|---|---|---|
| committer | Jack Nagel | 2014-09-05 15:13:52 -0500 |
| commit | 40d5d89ce945ce7282e2cc5cd247216bc2a8beec (patch) | |
| tree | 2ea4c1f01ecf559da6f2aaf00b1ebdc0c807cf8e /Library/Homebrew | |
| parent | 8a60da47364a2e7ce33caf0c5c2db717a98af9bd (diff) | |
| download | homebrew-40d5d89ce945ce7282e2cc5cd247216bc2a8beec.tar.bz2 | |
Skip allocating a pipe entirely in non-verbose mode
Diffstat (limited to 'Library/Homebrew')
| -rw-r--r-- | Library/Homebrew/formula.rb | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index 645a0a6ce..7d8f99602 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -508,24 +508,30 @@ class Formula logfn = "#{logd}/%02d.%s" % [@exec_count, File.basename(cmd).split(' ').first] mkdir_p(logd) - rd, wr = IO.pipe log = File.open(logfn, "w") log.puts Time.now, "", cmd, args, "" - out = ARGV.verbose? ? wr : log + if ARGV.verbose? + rd, wr = IO.pipe + out = wr + else + out = log + end begin pid = fork do - rd.close - log.close unless out == log + if rd + rd.close + log.close + end exec_cmd(cmd, args, out, logfn) end - wr.close + wr.close if wr while buf = rd.gets log.puts buf puts buf - end if ARGV.verbose? + end if rd Process.wait(pid) @@ -540,7 +546,7 @@ class Formula raise BuildError.new(self, cmd, args) end ensure - rd.close unless rd.closed? + rd.close if rd && !rd.closed? end end |
