From 6b0b25cd00182630d1ab2becf56d818f32e7bf73 Mon Sep 17 00:00:00 2001 From: Markus Reiter Date: Thu, 23 Jul 2020 02:58:12 +0200 Subject: [PATCH] Pass `keep_tmp?` and `interactive?` instead of using global `args`. --- Library/Homebrew/build.rb | 3 +-- Library/Homebrew/dev-cmd/update-test.rb | 2 +- Library/Homebrew/formula.rb | 16 ++++++++-------- Library/Homebrew/test.rb | 6 +++--- 4 files changed, 13 insertions(+), 14 deletions(-) diff --git a/Library/Homebrew/build.rb b/Library/Homebrew/build.rb index 2e6e91649b..c04c941e9c 100644 --- a/Library/Homebrew/build.rb +++ b/Library/Homebrew/build.rb @@ -121,12 +121,11 @@ class Build formula.update_head_version - formula.brew(fetch: false) do |_formula, staging| + formula.brew(fetch: false, keep_tmp: args.keep_tmp?, interactive: args.interactive?) do |_formula, _staging| # For head builds, HOMEBREW_FORMULA_PREFIX should include the commit, # which is not known until after the formula has been staged. ENV["HOMEBREW_FORMULA_PREFIX"] = formula.prefix - staging.retain! if args.keep_tmp? formula.patch if args.git? diff --git a/Library/Homebrew/dev-cmd/update-test.rb b/Library/Homebrew/dev-cmd/update-test.rb index 45fc962d87..fdf208dd49 100644 --- a/Library/Homebrew/dev-cmd/update-test.rb +++ b/Library/Homebrew/dev-cmd/update-test.rb @@ -123,6 +123,6 @@ module Homebrew end end ensure - FileUtils.rm_rf "update-test" unless Homebrew.args.keep_tmp? + FileUtils.rm_rf "update-test" unless args.keep_tmp? end end diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index f307705323..a259e3ef0d 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -1163,11 +1163,11 @@ class Formula # yields |self,staging| with current working directory set to the uncompressed tarball # where staging is a Mktemp staging context # @private - def brew(fetch: true) + def brew(fetch: true, keep_tmp: false, interactive: false) @prefix_returns_versioned_prefix = true active_spec.fetch if fetch - stage do |staging| - staging.retain! if Homebrew.args.keep_tmp? + stage(interactive: interactive) do |staging| + staging.retain! if keep_tmp prepare_patches fetch_patches if fetch @@ -1175,7 +1175,7 @@ class Formula begin yield self, staging rescue - staging.retain! if Homebrew.args.interactive? || Homebrew.args.debug? + staging.retain! if interactive || Homebrew.args.debug? raise ensure cp Dir["config.log", "CMakeCache.txt"], logs @@ -1792,7 +1792,7 @@ class Formula end # @private - def run_test + def run_test(keep_tmp: false) @prefix_returns_versioned_prefix = true test_env = { @@ -1808,7 +1808,7 @@ class Formula Utils.set_git_name_email! mktemp("#{name}-test") do |staging| - staging.retain! if Homebrew.args.keep_tmp? + staging.retain! if keep_tmp @testpath = staging.tmpdir test_env[:HOME] = @testpath setup_home @testpath @@ -2134,7 +2134,7 @@ class Formula } end - def stage + def stage(interactive: false) active_spec.stage do |staging| @source_modified_time = active_spec.source_modified_time @buildpath = Pathname.pwd @@ -2145,7 +2145,7 @@ class Formula HOMEBREW_PATH: nil, } - unless Homebrew.args.interactive? + unless interactive stage_env[:HOME] = env_home stage_env.merge!(common_stage_test_env) end diff --git a/Library/Homebrew/test.rb b/Library/Homebrew/test.rb index 561ddafd03..5e40b60b60 100644 --- a/Library/Homebrew/test.rb +++ b/Library/Homebrew/test.rb @@ -16,13 +16,13 @@ require "dev-cmd/test" TEST_TIMEOUT_SECONDS = 5 * 60 begin - Homebrew.test_args.parse + args = Homebrew.test_args.parse error_pipe = UNIXSocket.open(ENV["HOMEBREW_ERROR_PIPE"], &:recv_io) error_pipe.fcntl(Fcntl::F_SETFD, Fcntl::FD_CLOEXEC) trap("INT", old_trap) - formula = Homebrew.args.resolved_formulae.first + formula = args.resolved_formulae.first formula.extend(Homebrew::Assertions) formula.extend(Homebrew::FreePort) formula.extend(Debrew::Formula) if Homebrew.args.debug? @@ -32,7 +32,7 @@ begin # tests can also return false to indicate failure Timeout.timeout TEST_TIMEOUT_SECONDS do - raise "test returned false" if formula.run_test == false + raise "test returned false" if formula.run_test(keep_tmp: args.keep_tmp?) == false end rescue Exception => e # rubocop:disable Lint/RescueException error_pipe.puts e.to_json