More environment filtering fixes

- Make `brew pull` pass through Git environment variables
- Whitelist all `TRAVIS_` variables.
This commit is contained in:
Mike McQuaid 2017-11-27 10:48:03 +00:00
parent e41a0a3b81
commit fb6cf0c3f8
7 changed files with 17 additions and 8 deletions

View File

@ -80,6 +80,14 @@ module Homebrew
odie "This command requires at least one argument containing a URL or pull request number" odie "This command requires at least one argument containing a URL or pull request number"
end end
# Passthrough Git environment variables for e.g. git am
if ENV["HOMEBREW_GIT_NAME"]
ENV["GIT_COMMITTER_NAME"] = ENV["HOMEBREW_GIT_NAME"]
end
if ENV["HOMEBREW_GIT_EMAIL"]
ENV["GIT_COMMITTER_EMAIL"] = ENV["HOMEBREW_GIT_EMAIL"]
end
do_bump = ARGV.include?("--bump") && !ARGV.include?("--clean") do_bump = ARGV.include?("--bump") && !ARGV.include?("--clean")
# Formulae with affected bottles that were published # Formulae with affected bottles that were published

View File

@ -57,7 +57,7 @@ module Homebrew
# `brew test-bot` runs `brew doctor` in the CI for the Homebrew/brew # `brew test-bot` runs `brew doctor` in the CI for the Homebrew/brew
# repository. This only needs to support whatever CI provider # repository. This only needs to support whatever CI provider
# Homebrew/brew is currently using. # Homebrew/brew is currently using.
return if ENV["HOMEBREW_TRAVIS"] return if ENV["TRAVIS"]
message = <<~EOS message = <<~EOS
Your Xcode (#{MacOS::Xcode.version}) is outdated. Your Xcode (#{MacOS::Xcode.version}) is outdated.
@ -84,7 +84,7 @@ module Homebrew
# `brew test-bot` runs `brew doctor` in the CI for the Homebrew/brew # `brew test-bot` runs `brew doctor` in the CI for the Homebrew/brew
# repository. This only needs to support whatever CI provider # repository. This only needs to support whatever CI provider
# Homebrew/brew is currently using. # Homebrew/brew is currently using.
return if ENV["HOMEBREW_TRAVIS"] return if ENV["TRAVIS"]
<<~EOS <<~EOS
A newer Command Line Tools release is available. A newer Command Line Tools release is available.

View File

@ -495,7 +495,7 @@ module ObserverPathnameExtension
MAXIMUM_VERBOSE_OUTPUT = 100 MAXIMUM_VERBOSE_OUTPUT = 100
def verbose? def verbose?
return ARGV.verbose? unless ENV["HOMEBREW_TRAVIS"] return ARGV.verbose? unless ENV["TRAVIS"]
return false unless ARGV.verbose? return false unless ARGV.verbose?
if total < MAXIMUM_VERBOSE_OUTPUT if total < MAXIMUM_VERBOSE_OUTPUT

View File

@ -702,7 +702,7 @@ class FormulaInstaller
Utils.safe_fork do Utils.safe_fork do
# Invalidate the current sudo timestamp in case a build script calls sudo. # Invalidate the current sudo timestamp in case a build script calls sudo.
# Travis CI's Linux sudoless workers have a weird sudo that fails here. # Travis CI's Linux sudoless workers have a weird sudo that fails here.
system "/usr/bin/sudo", "-k" unless ENV["HOMEBREW_TRAVIS_SUDO"] == "false" system "/usr/bin/sudo", "-k" unless ENV["TRAVIS_SUDO"] == "false"
if Sandbox.formula?(formula) if Sandbox.formula?(formula)
sandbox = Sandbox.new sandbox = Sandbox.new

View File

@ -9,7 +9,7 @@ require "set"
if ENV["HOMEBREW_TESTS_COVERAGE"] if ENV["HOMEBREW_TESTS_COVERAGE"]
require "simplecov" require "simplecov"
if ENV["CODECOV_TOKEN"] || ENV["HOMEBREW_TRAVIS"] if ENV["CODECOV_TOKEN"] || ENV["TRAVIS"]
require "codecov" require "codecov"
SimpleCov.formatter = SimpleCov::Formatter::Codecov SimpleCov.formatter = SimpleCov::Formatter::Codecov
end end

View File

@ -27,7 +27,7 @@ def curl_args(*extra_args, show_output: false, user_agent: :default)
args << "--fail" args << "--fail"
args << "--progress-bar" unless ARGV.verbose? args << "--progress-bar" unless ARGV.verbose?
args << "--verbose" if ENV["HOMEBREW_CURL_VERBOSE"] args << "--verbose" if ENV["HOMEBREW_CURL_VERBOSE"]
args << "--silent" if !$stdout.tty? || ENV["HOMEBREW_TRAVIS"] args << "--silent" if !$stdout.tty? || ENV["TRAVIS"]
end end
args + extra_args args + extra_args

View File

@ -47,7 +47,7 @@ HOMEBREW_LIBRARY="$HOMEBREW_REPOSITORY/Library"
# Whitelist and copy to HOMEBREW_* all variables previously mentioned in # Whitelist and copy to HOMEBREW_* all variables previously mentioned in
# manpage or used elsewhere by Homebrew. # manpage or used elsewhere by Homebrew.
for VAR in AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY BINTRAY_USER BINTRAY_KEY \ for VAR in AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY BINTRAY_USER BINTRAY_KEY \
BROWSER EDITOR GIT PATH VISUAL TRAVIS TRAVIS_SUDO \ BROWSER EDITOR GIT PATH VISUAL \
GITHUB_USER GITHUB_PASSWORD GITHUB_TOKEN GITHUB_USER GITHUB_PASSWORD GITHUB_TOKEN
do do
# Skip if variable value is empty. # Skip if variable value is empty.
@ -65,7 +65,8 @@ then
PATH="/usr/bin:/bin:/usr/sbin:/sbin" PATH="/usr/bin:/bin:/usr/sbin:/sbin"
FILTERED_ENV=() FILTERED_ENV=()
for VAR in HOME SHELL PATH TERM LOGNAME USER CI "${!HOMEBREW_@}" for VAR in HOME SHELL PATH TERM LOGNAME USER CI TRAVIS \
"${!HOMEBREW_@}" "${!TRAVIS_@}"
do do
FILTERED_ENV+=( "${VAR}=${!VAR}" ) FILTERED_ENV+=( "${VAR}=${!VAR}" )
done done