
- add `HOMEBREW_PRODUCT` global variable - only differentiate between `/usr/local` and `non-/usr/local` Homebrew prefixes to avoid sharing sensitive user information - note if e.g. build errors are occurring under CI - Add `HOMEBREW_NO_ANALYTICS` variable (this will be how people opt-out when this is enabled for everyone) - Add `HOMEBREW_ANALYTICS_DEBUG` variable to output all the analytics that are sent - Move Bash analytics code to `Library/Homebrew/utils/analytics.sh` - Add documentation for our analytics and why/what/when/how and opt-out - Only official Homebrew commands are reported - Ruby analytics are now reported in a forked, background process
69 lines
1.8 KiB
Ruby
69 lines
1.8 KiB
Ruby
require "extend/module"
|
|
require "extend/fileutils"
|
|
require "extend/pathname"
|
|
require "extend/ARGV"
|
|
require "extend/string"
|
|
require "extend/enumerable"
|
|
require "os"
|
|
require "utils"
|
|
require "exceptions"
|
|
require "set"
|
|
require "rbconfig"
|
|
|
|
ARGV.extend(HomebrewArgvExtension)
|
|
|
|
HOMEBREW_PRODUCT = ENV["HOMEBREW_PRODUCT"]
|
|
HOMEBREW_VERSION = ENV["HOMEBREW_VERSION"]
|
|
HOMEBREW_WWW = "http://brew.sh"
|
|
|
|
require "config"
|
|
|
|
if RbConfig.respond_to?(:ruby)
|
|
RUBY_PATH = Pathname.new(RbConfig.ruby)
|
|
else
|
|
RUBY_PATH = Pathname.new(RbConfig::CONFIG["bindir"]).join(
|
|
RbConfig::CONFIG["ruby_install_name"] + RbConfig::CONFIG["EXEEXT"]
|
|
)
|
|
end
|
|
RUBY_BIN = RUBY_PATH.dirname
|
|
|
|
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"
|
|
|
|
require "tap_constants"
|
|
|
|
module Homebrew
|
|
include FileUtils
|
|
extend self
|
|
|
|
attr_accessor :failed
|
|
alias_method :failed?, :failed
|
|
end
|
|
|
|
HOMEBREW_PULL_API_REGEX = %r{https://api\.github\.com/repos/([\w-]+)/([\w-]+)?/pulls/(\d+)}
|
|
HOMEBREW_PULL_OR_COMMIT_URL_REGEX = %r[https://github\.com/([\w-]+)/([\w-]+)?/(?:pull/(\d+)|commit/[0-9a-fA-F]{4,40})]
|
|
|
|
require "compat" unless ARGV.include?("--no-compat") || ENV["HOMEBREW_NO_COMPAT"]
|
|
|
|
ORIGINAL_PATHS = ENV["PATH"].split(File::PATH_SEPARATOR).map { |p| Pathname.new(p).expand_path rescue nil }.compact.freeze
|
|
|
|
# TODO: remove this as soon as it's removed from commands.rb.
|
|
HOMEBREW_INTERNAL_COMMAND_ALIASES = {
|
|
"ls" => "list",
|
|
"homepage" => "home",
|
|
"-S" => "search",
|
|
"up" => "update",
|
|
"ln" => "link",
|
|
"instal" => "install", # gem does the same
|
|
"rm" => "uninstall",
|
|
"remove" => "uninstall",
|
|
"configure" => "diy",
|
|
"abv" => "info",
|
|
"dr" => "doctor",
|
|
"--repo" => "--repository",
|
|
"environment" => "--env",
|
|
"--config" => "config"
|
|
}
|