Extract body of child process to a method
This commit is contained in:
parent
bbf79f5d85
commit
659896fda2
@ -510,29 +510,7 @@ class Formula
|
||||
logfn = "#{logd}/%02d.%s" % [@exec_count, File.basename(cmd).split(' ').first]
|
||||
mkdir_p(logd)
|
||||
|
||||
pid = fork do
|
||||
ENV['HOMEBREW_CC_LOG_PATH'] = logfn
|
||||
|
||||
# TODO system "xcodebuild" is deprecated, this should be removed soon.
|
||||
if cmd.to_s.start_with? "xcodebuild"
|
||||
ENV.remove_cc_etc
|
||||
end
|
||||
|
||||
# Turn on argument filtering in the superenv compiler wrapper.
|
||||
# We should probably have a better mechanism for this than adding
|
||||
# special cases to this method.
|
||||
if cmd == "python" && %w[setup.py build.py].include?(args.first)
|
||||
ENV.refurbish_args
|
||||
end
|
||||
|
||||
rd.close
|
||||
$stdout.reopen wr
|
||||
$stderr.reopen wr
|
||||
args.collect!{|arg| arg.to_s}
|
||||
exec(cmd, *args) rescue nil
|
||||
puts "Failed to execute: #{cmd}"
|
||||
exit! 1 # never gets here unless exec threw or failed
|
||||
end
|
||||
pid = fork { exec_cmd(cmd, args, rd, wr, logfn) }
|
||||
wr.close
|
||||
|
||||
File.open(logfn, 'w') do |f|
|
||||
@ -569,6 +547,30 @@ class Formula
|
||||
|
||||
private
|
||||
|
||||
def exec_cmd(cmd, args, rd, wr, logfn)
|
||||
ENV['HOMEBREW_CC_LOG_PATH'] = logfn
|
||||
|
||||
# TODO system "xcodebuild" is deprecated, this should be removed soon.
|
||||
if cmd.to_s.start_with? "xcodebuild"
|
||||
ENV.remove_cc_etc
|
||||
end
|
||||
|
||||
# Turn on argument filtering in the superenv compiler wrapper.
|
||||
# We should probably have a better mechanism for this than adding
|
||||
# special cases to this method.
|
||||
if cmd == "python" && %w[setup.py build.py].include?(args.first)
|
||||
ENV.refurbish_args
|
||||
end
|
||||
|
||||
rd.close
|
||||
$stdout.reopen wr
|
||||
$stderr.reopen wr
|
||||
args.collect!{|arg| arg.to_s}
|
||||
exec(cmd, *args) rescue nil
|
||||
puts "Failed to execute: #{cmd}"
|
||||
exit! 1 # never gets here unless exec threw or failed
|
||||
end
|
||||
|
||||
def stage
|
||||
active_spec.stage do
|
||||
@buildpath = Pathname.pwd
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user