
All of these taps use Homebrew internal APIs (or will shortly) and we autoinstall them all from `brew $CMD`. We should adjust our CI to ensure that we never accidentally break these taps when making changes to core code so that these taps can rely more on this core code rather than having to e.g. vendor equivalent code that never changes on our end.
76 lines
1.9 KiB
Ruby
76 lines
1.9 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"
|
|
require "official_taps"
|
|
|
|
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 = [
|
|
"--fail",
|
|
"--progress-bar",
|
|
"--remote-time",
|
|
"--location",
|
|
"--user-agent", HOMEBREW_USER_AGENT_CURL
|
|
].freeze
|
|
|
|
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"
|
|
}
|