Skip to content
Snippets Groups Projects
Commit 77611baf authored by Mike McQuaid's avatar Mike McQuaid
Browse files

Make Homebrew user agent consistent, use a slash.

Generally it seems user agents are all `software/version` but ours is
not. Also, set the user agent in a way that it's shared between Bash
and Ruby code.

Closes https://github.com/Homebrew/legacy-homebrew/pull/50480.
parent ac808830
No related branches found
No related tags found
No related merge requests found
......@@ -306,7 +306,7 @@ EOS
# (so the API does not return 304: unmodified).
UPSTREAM_SHA_HTTP_CODE="$(curl --silent '--max-time' 3 \
--output /dev/null --write-out "%{http_code}" \
--user-agent "Homebrew $HOMEBREW_VERSION" \
--user-agent "$HOMEBREW_USER_AGENT_CURL" \
--header "Accept: application/vnd.github.chitauri-preview+sha" \
--header "If-None-Match: \"$UPSTREAM_BRANCH_LOCAL_SHA\"" \
"https://api.github.com/repos/$UPSTREAM_REPOSITORY/commits/$UPSTREAM_BRANCH")"
......
......@@ -26,7 +26,8 @@ else
end
RUBY_BIN = RUBY_PATH.dirname
HOMEBREW_USER_AGENT = "Homebrew #{HOMEBREW_VERSION} (Ruby #{RUBY_VERSION}-#{RUBY_PATCHLEVEL}; #{OS_VERSION})"
HOMEBREW_USER_AGENT_CURL = ENV["HOMEBREW_USER_AGENT_CURL"]
HOMEBREW_USER_AGENT_RUBY = "#{ENV["HOMEBREW_USER_AGENT"]} ruby/#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}"
HOMEBREW_CURL_ARGS = "-f#LA"
......
......@@ -7,6 +7,8 @@ module OS
/linux/i === RUBY_PLATFORM
end
::OS_VERSION = ENV["HOMEBREW_OS_VERSION"]
if OS.mac?
require "os/mac"
ISSUES_URL = "https://git.io/brew-troubleshooting"
......@@ -14,13 +16,11 @@ module OS
# compatibility
::MACOS_FULL_VERSION = OS::Mac.full_version.to_s
::MACOS_VERSION = OS::Mac.version.to_s
::OS_VERSION = "OS X #{MACOS_FULL_VERSION}"
elsif OS.linux?
ISSUES_URL = "https://github.com/Homebrew/linuxbrew/wiki/troubleshooting"
PATH_OPEN = "xdg-open"
# compatibility
::MACOS_FULL_VERSION = ::MACOS_VERSION = "0"
::OS_VERSION = RUBY_PLATFORM
else
raise "Unknown operating system"
end
......
......@@ -21,7 +21,7 @@ module OS
# This can be compared to numerics, strings, or symbols
# using the standard Ruby Comparable methods.
def full_version
@full_version ||= Version.new(`/usr/bin/sw_vers -productVersion`.chomp)
@full_version ||= Version.new(ENV["HOMEBREW_OSX_VERSION"].chomp)
end
def prerelease?
......
......@@ -309,18 +309,13 @@ def quiet_system(cmd, *args)
end
def curl(*args)
brewed_curl = HOMEBREW_PREFIX/"opt/curl/bin/curl"
curl = if MacOS.version <= "10.8" && brewed_curl.exist?
brewed_curl
else
Pathname.new "/usr/bin/curl"
end
curl = Pathname.new ENV["HOMEBREW_CURL"]
raise "#{curl} is not executable" unless curl.exist? && curl.executable?
flags = HOMEBREW_CURL_ARGS
flags = flags.delete("#") if ARGV.verbose?
args = [flags, HOMEBREW_USER_AGENT, *args]
args = [flags, HOMEBREW_USER_AGENT_CURL, *args]
args << "--verbose" if ENV["HOMEBREW_CURL_VERBOSE"]
args << "--silent" if !$stdout.tty? || ENV["TRAVIS"]
......@@ -594,7 +589,7 @@ module GitHub
def api_headers
{
"User-Agent" => HOMEBREW_USER_AGENT,
"User-Agent" => HOMEBREW_USER_AGENT_RUBY,
"Accept" => "application/vnd.github.v3+json"
}
end
......
......@@ -57,9 +57,13 @@ then
unset HOMEBREW_RUBY_PATH
fi
if [[ "$(uname -s)" = "Darwin" ]]
HOMEBREW_SYSTEM="$(uname -s)"
if [[ "$HOMEBREW_SYSTEM" = "Darwin" ]]
then
HOMEBREW_OSX="1"
elif [[ "$HOMEBREW_SYSTEM" = "Linux" ]]
then
HOMEBREW_LINUX="1"
fi
if [[ -z "$HOMEBREW_RUBY_PATH" ]]
......@@ -72,13 +76,47 @@ then
fi
fi
export HOMEBREW_VERSION
HOMEBREW_CURL="/usr/bin/curl"
HOMEBREW_PROCESSOR="$(uname -p)"
if [[ -n "$HOMEBREW_OSX" ]]
then
HOMEBREW_PRODUCT="Homebrew"
HOMEBREW_SYSTEM="Macintosh"
# This is i386 even on x86_64 machines
[[ "$HOMEBREW_PROCESSOR" = "i386" ]] && HOMEBREW_PROCESSOR="Intel"
HOMEBREW_OSX_VERSION="$(/usr/bin/sw_vers -productVersion)"
HOMEBREW_OS_VERSION="Mac OS X $HOMEBREW_OSX_VERSION"
HOMEBREW_OSX_VERSION_NUMERIC="$(printf "%02d%02d%02d" $(echo "${HOMEBREW_OSX_VERSION//./ }"))"
if [[ "$HOMEBREW_OSX_VERSION_NUMERIC" -lt "100900" &&
-x "$HOMEBREW_PREFIX/opt/curl/bin/curl" ]]
then
HOMEBREW_CURL="$HOMEBREW_PREFIX/opt/curl/bin/curl"
fi
else
HOMEBREW_PRODUCT="${HOMEBREW_SYSTEM}brew"
[[ -n "$HOMEBREW_LINUX" ]] && HOMEBREW_OS_VERSION="$(lsb_release -sd 2>/dev/null)"
HOMEBREW_OS_VERSION="${HOMEBREW_PRODUCT:=$(uname -r)}"
fi
HOMEBREW_USER_AGENT="$HOMEBREW_PRODUCT/$HOMEBREW_VERSION ($HOMEBREW_SYSTEM; $HOMEBREW_PROCESSOR $HOMEBREW_OS_VERSION)"
HOMEBREW_CURL_VERSION="$("$HOMEBREW_CURL" --version 2>/dev/null | head -n1 | awk '{print $1"/"$2}')"
HOMEBREW_USER_AGENT_CURL="$HOMEBREW_USER_AGENT $HOMEBREW_CURL_VERSION"
# Declared in bin/brew
export HOMEBREW_BREW_FILE
export HOMEBREW_RUBY_PATH
export HOMEBREW_PREFIX
export HOMEBREW_REPOSITORY
export HOMEBREW_LIBRARY
# Declared in brew.sh
export HOMEBREW_VERSION
export HOMEBREW_CELLAR
export HOMEBREW_RUBY_PATH
export HOMEBREW_CURL
export HOMEBREW_OS_VERSION
export HOMEBREW_OSX_VERSION
export HOMEBREW_USER_AGENT
export HOMEBREW_USER_AGENT_CURL
if [[ -n "$HOMEBREW_OSX" ]]
then
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment