aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/formula.rb
diff options
context:
space:
mode:
authorMike McQuaid2017-10-29 14:44:43 +0000
committerMike McQuaid2017-10-29 14:44:43 +0000
commitca189437e4d35f9e6c89f4b7955613f708ab3282 (patch)
treed91421a865326f2c15313a621d7a38908d735a2b /Library/Homebrew/formula.rb
parent7caca570736a6232512328992b398270dbbf3f4f (diff)
downloadbrew-ca189437e4d35f9e6c89f4b7955613f708ab3282.tar.bz2
Tweak use of with_env
- Use it in more places where it saves code - Allow using symbolic keys for a cleaner interface - Use `HOMEBREW_GEM_*` instead of `GEM_OLD_*`
Diffstat (limited to 'Library/Homebrew/formula.rb')
-rw-r--r--Library/Homebrew/formula.rb67
1 files changed, 25 insertions, 42 deletions
diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb
index 1765f20c1..607fdd5c4 100644
--- a/Library/Homebrew/formula.rb
+++ b/Library/Homebrew/formula.rb
@@ -1615,33 +1615,30 @@ class Formula
# @private
def run_test
@prefix_returns_versioned_prefix = true
- old_home = ENV["HOME"]
- old_java_opts = ENV["_JAVA_OPTIONS"]
- old_curl_home = ENV["CURL_HOME"]
- old_tmpdir = ENV["TMPDIR"]
- old_temp = ENV["TEMP"]
- old_tmp = ENV["TMP"]
- old_term = ENV["TERM"]
- old_path = ENV["PATH"]
- old_homebrew_path = ENV["HOMEBREW_PATH"]
-
- ENV["CURL_HOME"] = old_curl_home || old_home
- ENV["TMPDIR"] = ENV["TEMP"] = ENV["TMP"] = HOMEBREW_TEMP
- ENV["TERM"] = "dumb"
- ENV["PATH"] = PATH.new(old_path).append(HOMEBREW_PREFIX/"bin")
- ENV["HOMEBREW_PATH"] = nil
- ENV["_JAVA_OPTIONS"] = "#{old_java_opts} -Duser.home=#{HOMEBREW_CACHE}/java_cache"
+
+ test_env = {
+ CURL_HOME: ENV["CURL_HOME"] || ENV["HOME"],
+ TMPDIR: HOMEBREW_TEMP,
+ TEMP: HOMEBREW_TEMP,
+ TMP: HOMEBREW_TEMP,
+ TERM: "dumb",
+ PATH: PATH.new(ENV["PATH"]).append(HOMEBREW_PREFIX/"bin"),
+ HOMEBREW_PATH: nil,
+ _JAVA_OPTIONS: "#{ENV["_JAVA_OPTIONS"]} -Duser.home=#{HOMEBREW_CACHE}/java_cache",
+ }
ENV.clear_sensitive_environment!
mktemp("#{name}-test") do |staging|
staging.retain! if ARGV.keep_tmp?
@testpath = staging.tmpdir
- ENV["HOME"] = @testpath
+ test_env[:HOME] = @testpath
setup_home @testpath
begin
with_logging("test") do
- test
+ with_env(test_env) do
+ test
+ end
end
rescue Exception # rubocop:disable Lint/RescueException
staging.retain! if ARGV.debug?
@@ -1650,15 +1647,6 @@ class Formula
end
ensure
@testpath = nil
- ENV["HOME"] = old_home
- ENV["_JAVA_OPTIONS"] = old_java_opts
- ENV["CURL_HOME"] = old_curl_home
- ENV["TMPDIR"] = old_tmpdir
- ENV["TEMP"] = old_temp
- ENV["TMP"] = old_tmp
- ENV["TERM"] = old_term
- ENV["PATH"] = old_path
- ENV["HOMEBREW_PATH"] = old_homebrew_path
@prefix_returns_versioned_prefix = false
end
@@ -1891,32 +1879,27 @@ class Formula
env_home = buildpath/".brew_home"
mkdir_p env_home
- old_home = ENV["HOME"]
- old_java_opts = ENV["_JAVA_OPTIONS"]
- old_curl_home = ENV["CURL_HOME"]
- old_path = ENV["HOMEBREW_PATH"]
+ stage_env = {
+ HOMEBREW_PATH: nil,
+ }
unless ARGV.interactive?
- ENV["HOME"] = env_home
- ENV["_JAVA_OPTIONS"] = "#{old_java_opts} -Duser.home=#{HOMEBREW_CACHE}/java_cache"
- ENV["CURL_HOME"] = old_curl_home || old_home
+ stage_env[:HOME] = env_home
+ stage_env[:_JAVA_OPTIONS] =
+ "#{ENV["_JAVA_OPTIONS"]} -Duser.home=#{HOMEBREW_CACHE}/java_cache"
+ stage_env[:CURL_HOME] = ENV["CURL_HOME"] || ENV["HOME"]
end
- ENV["HOMEBREW_PATH"] = nil
setup_home env_home
ENV.clear_sensitive_environment!
begin
- yield staging
+ with_env(stage_env) do
+ yield staging
+ end
ensure
@buildpath = nil
- unless ARGV.interactive?
- ENV["HOME"] = old_home
- ENV["_JAVA_OPTIONS"] = old_java_opts
- ENV["CURL_HOME"] = old_curl_home
- end
- ENV["HOMEBREW_PATH"] = old_path
end
end
end