brew/Library/Homebrew/global.rb

163 lines
3.9 KiB
Ruby
Raw Normal View History

2018-07-17 14:23:33 +02:00
require "English"
require "json"
require "json/add/exception"
2018-09-02 23:30:07 +02:00
require "pathname"
require "ostruct"
require "pp"
2018-07-17 14:23:33 +02:00
2018-09-02 23:30:07 +02:00
require_relative "load_path"
2018-07-17 14:23:33 +02:00
require "active_support/core_ext/object/blank"
2018-09-17 04:11:09 +02:00
require "active_support/core_ext/numeric/time"
require "active_support/core_ext/array/access"
require "active_support/i18n"
require "active_support/inflector/inflections"
I18n.backend.available_locales # Initialize locales so they can be overwritten.
I18n.backend.store_translations :en, support: { array: { last_word_connector: " and " } }
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.irregular "formula", "formulae"
inflect.irregular "is", "are"
inflect.irregular "it", "they"
end
2018-07-17 14:23:33 +02:00
require "config"
require "os"
require "extend/ARGV"
2018-09-02 23:30:07 +02:00
require "messages"
require "system_command"
ARGV.extend(HomebrewArgvExtension)
HOMEBREW_PRODUCT = ENV["HOMEBREW_PRODUCT"]
HOMEBREW_VERSION = ENV["HOMEBREW_VERSION"]
2017-02-12 13:57:52 +00:00
HOMEBREW_WWW = "https://brew.sh".freeze
require "extend/git_repository"
2013-12-14 09:35:58 -06:00
HOMEBREW_REPOSITORY.extend(GitRepositoryExtension)
require "rbconfig"
2016-08-18 14:35:39 +08:00
RUBY_PATH = Pathname.new(RbConfig.ruby)
2014-06-09 21:36:36 -05:00
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}".freeze
HOMEBREW_USER_AGENT_FAKE_SAFARI =
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 " \
"(KHTML, like Gecko) Version/10.0.3 Safari/602.4.8".freeze
# Bintray fallback is here for people auto-updating from a version where
# `HOMEBREW_BOTTLE_DEFAULT_DOMAIN` isn't set.
HOMEBREW_BOTTLE_DEFAULT_DOMAIN = if ENV["HOMEBREW_BOTTLE_DEFAULT_DOMAIN"]
ENV["HOMEBREW_BOTTLE_DEFAULT_DOMAIN"]
elsif OS.mac?
"https://homebrew.bintray.com".freeze
else
"https://linuxbrew.bintray.com".freeze
end
HOMEBREW_BOTTLE_DOMAIN = ENV["HOMEBREW_BOTTLE_DOMAIN"] ||
HOMEBREW_BOTTLE_DEFAULT_DOMAIN
require "fileutils"
require "os"
require "os/global"
module Homebrew
2016-09-26 01:44:51 +02:00
extend FileUtils
DEFAULT_PREFIX ||= "/usr/local".freeze
DEFAULT_CELLAR = "#{DEFAULT_PREFIX}/Cellar".freeze
DEFAULT_REPOSITORY = "#{DEFAULT_PREFIX}/Homebrew".freeze
2016-09-26 01:44:51 +02:00
class << self
attr_writer :failed, :raise_deprecation_exceptions, :auditing, :args
def Homebrew.default_prefix?(prefix = HOMEBREW_PREFIX)
prefix.to_s == DEFAULT_PREFIX
end
2016-09-26 01:44:51 +02:00
def failed?
@failed ||= false
2016-09-26 01:44:51 +02:00
@failed == true
end
def args
@args ||= OpenStruct.new
end
2016-09-26 01:44:51 +02:00
def messages
@messages ||= Messages.new
end
2016-09-26 01:44:51 +02:00
def raise_deprecation_exceptions?
@raise_deprecation_exceptions == true
end
def auditing?
@auditing == true
end
2016-09-26 01:44:51 +02:00
end
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 "forwardable"
require "PATH"
2017-04-23 11:40:53 +01:00
ENV["HOMEBREW_PATH"] ||= ENV["PATH"]
2017-04-28 12:39:00 +02:00
ORIGINAL_PATHS = PATH.new(ENV["HOMEBREW_PATH"]).map do |p|
begin
2016-09-17 17:01:04 +01:00
Pathname.new(p).expand_path
rescue
nil
end
end.compact.freeze
HOMEBREW_INTERNAL_COMMAND_ALIASES = {
"ls" => "list",
"homepage" => "home",
"-S" => "search",
"up" => "update",
"ln" => "link",
"instal" => "install", # gem does the same
"uninstal" => "uninstall",
"rm" => "uninstall",
"remove" => "uninstall",
"configure" => "diy",
"abv" => "info",
"dr" => "doctor",
"--repo" => "--repository",
"environment" => "--env",
"--config" => "config",
"-v" => "--version",
}.freeze
require "set"
require "extend/pathname"
require "extend/module"
require "extend/predicable"
require "extend/string"
require "active_support/core_ext/object/blank"
require "active_support/core_ext/hash/deep_merge"
require "active_support/core_ext/file/atomic"
require "constants"
require "exceptions"
require "utils"
require "official_taps"
require "tap"
require "tap_constants"
if !ARGV.include?("--no-compat") && !ENV["HOMEBREW_NO_COMPAT"]
require "compat"
end