Merge pull request #2606 from MikeMcQuaid/revert-vendor-gems
Revert gem vendoring experiment.
This commit is contained in:
commit
0d5956948e
@ -1,5 +0,0 @@
|
||||
---
|
||||
BUNDLE_CLEAN: "true"
|
||||
BUNDLE_DISABLE_SHARED_GEMS: "true"
|
||||
BUNDLE_PATH: "Library/Homebrew/vendor"
|
||||
BUNDLE_JOBS: "3"
|
||||
29
.gitignore
vendored
29
.gitignore
vendored
@ -8,10 +8,15 @@
|
||||
!/Library/
|
||||
|
||||
# Ignore generated files within `Library` (again).
|
||||
/Library/Homebrew/**/.bundle
|
||||
/Library/Homebrew/**/vendor/bundle
|
||||
/Library/Homebrew/doc
|
||||
/Library/Homebrew/cask/bin
|
||||
/Library/Homebrew/cask/coverage
|
||||
/Library/Homebrew/cask/tmp
|
||||
/Library/Homebrew/test/bin
|
||||
/Library/Homebrew/test/coverage
|
||||
/Library/Homebrew/test/fs_leak_log
|
||||
/Library/Homebrew/tmp
|
||||
/Library/LinkedKegs
|
||||
/Library/Locks
|
||||
@ -19,24 +24,8 @@
|
||||
/Library/PinnedTaps
|
||||
/Library/Taps
|
||||
|
||||
# Ignore some vendored files within `Library`.
|
||||
# Ignore vendored files within `Library`.
|
||||
/Library/Homebrew/vendor/portable-ruby
|
||||
/Library/Homebrew/vendor/ruby/2.0.0/bin
|
||||
/Library/Homebrew/vendor/ruby/2.0.0/cache
|
||||
/Library/Homebrew/vendor/ruby/2.0.0/extensions
|
||||
/Library/Homebrew/vendor/ruby/2.0.0/gems/*
|
||||
/Library/Homebrew/vendor/ruby/2.0.0/gems/ruby-macho-*/*
|
||||
/Library/Homebrew/vendor/ruby/2.0.0/gems/plist-*/*
|
||||
/Library/Homebrew/vendor/ruby/2.0.0/specifications
|
||||
/Library/Homebrew/vendor/ruby/2.0.0/tmp
|
||||
|
||||
# Unignore our vendored gems
|
||||
!/Library/Homebrew/vendor/ruby/2.0.0/gems/ruby-macho-*
|
||||
!/Library/Homebrew/vendor/ruby/2.0.0/gems/ruby-macho-*/LICENSE*
|
||||
!/Library/Homebrew/vendor/ruby/2.0.0/gems/ruby-macho-*/lib
|
||||
!/Library/Homebrew/vendor/ruby/2.0.0/gems/plist-*
|
||||
!/Library/Homebrew/vendor/ruby/2.0.0/gems/plist-*/LICENSE*
|
||||
!/Library/Homebrew/vendor/ruby/2.0.0/gems/plist-*/lib
|
||||
|
||||
# Ignore `bin` contents (again).
|
||||
/bin
|
||||
@ -61,13 +50,13 @@
|
||||
!/completions
|
||||
|
||||
# Unignore our root-level metadata files.
|
||||
!/.bundle
|
||||
!/.gitignore
|
||||
!/.travis.yml
|
||||
!/.yardopts
|
||||
!/CODEOFCONDUCT.md
|
||||
!/CONTRIBUTING.md
|
||||
!/Gemfile
|
||||
!/Gemfile.lock
|
||||
!/LICENSE.txt
|
||||
!/README.md
|
||||
|
||||
# Unignore tests' bundle config
|
||||
!/Library/Homebrew/test/.bundle
|
||||
|
||||
11
.travis.yml
11
.travis.yml
@ -1,6 +1,8 @@
|
||||
language: ruby
|
||||
bundler_args: --path Library/Homebrew/vendor --standalone --jobs 3
|
||||
cache: bundler
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/.gem/ruby
|
||||
- Library/Homebrew/vendor/bundle
|
||||
|
||||
matrix:
|
||||
include:
|
||||
@ -8,14 +10,9 @@ matrix:
|
||||
osx_image: xcode8.3
|
||||
rvm: system
|
||||
- os: linux
|
||||
sudo: false
|
||||
rvm: 2.0.0
|
||||
|
||||
before_install:
|
||||
- rm -rf Library/Homebrew/vendor/bundle/
|
||||
- export GEM_HOME="$PWD/Library/Homebrew/vendor/ruby/2.0.0"
|
||||
- gem list --installed bundler || gem install bundler
|
||||
- export PATH="$GEM_HOME/bin:$PATH"
|
||||
- export HOMEBREW_DEVELOPER=1
|
||||
- if [ "${TRAVIS_OS_NAME}" = "osx" ]; then
|
||||
HOMEBREW_REPOSITORY="$(brew --repo)";
|
||||
|
||||
36
Gemfile
36
Gemfile
@ -1,36 +0,0 @@
|
||||
source "https://rubygems.org"
|
||||
|
||||
# brew *
|
||||
gem "ruby-macho"
|
||||
|
||||
# brew cask
|
||||
gem "plist"
|
||||
|
||||
# brew cask style
|
||||
group :cask_style do
|
||||
gem "rubocop-cask", "~> 0.12.0"
|
||||
end
|
||||
|
||||
# brew man
|
||||
group :man do
|
||||
gem "ronn"
|
||||
end
|
||||
|
||||
# brew style
|
||||
group :style do
|
||||
gem "rubocop", "~> 0.47.1"
|
||||
end
|
||||
|
||||
# brew tests
|
||||
group :tests do
|
||||
gem "parallel_tests"
|
||||
gem "rspec"
|
||||
gem "rspec-its", require: false
|
||||
gem "rspec-wait", require: false
|
||||
end
|
||||
|
||||
# brew tests --coverage
|
||||
group :coverage do
|
||||
gem "codecov", require: false
|
||||
gem "simplecov", require: false
|
||||
end
|
||||
84
Gemfile.lock
84
Gemfile.lock
@ -1,84 +0,0 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
ast (2.3.0)
|
||||
codecov (0.1.10)
|
||||
json
|
||||
simplecov
|
||||
url
|
||||
diff-lcs (1.3)
|
||||
docile (1.1.5)
|
||||
hpricot (0.8.6)
|
||||
json (2.1.0)
|
||||
mustache (1.0.5)
|
||||
parallel (1.11.1)
|
||||
parallel_tests (2.14.1)
|
||||
parallel
|
||||
parser (2.4.0.0)
|
||||
ast (~> 2.2)
|
||||
plist (3.3.0)
|
||||
powerpack (0.1.1)
|
||||
public_suffix (2.0.5)
|
||||
rainbow (2.2.2)
|
||||
rake
|
||||
rake (12.0.0)
|
||||
rdiscount (2.2.0.1)
|
||||
ronn (0.7.3)
|
||||
hpricot (>= 0.8.2)
|
||||
mustache (>= 0.7.0)
|
||||
rdiscount (>= 1.5.8)
|
||||
rspec (3.6.0)
|
||||
rspec-core (~> 3.6.0)
|
||||
rspec-expectations (~> 3.6.0)
|
||||
rspec-mocks (~> 3.6.0)
|
||||
rspec-core (3.6.0)
|
||||
rspec-support (~> 3.6.0)
|
||||
rspec-expectations (3.6.0)
|
||||
diff-lcs (>= 1.2.0, < 2.0)
|
||||
rspec-support (~> 3.6.0)
|
||||
rspec-its (1.2.0)
|
||||
rspec-core (>= 3.0.0)
|
||||
rspec-expectations (>= 3.0.0)
|
||||
rspec-mocks (3.6.0)
|
||||
diff-lcs (>= 1.2.0, < 2.0)
|
||||
rspec-support (~> 3.6.0)
|
||||
rspec-support (3.6.0)
|
||||
rspec-wait (0.0.9)
|
||||
rspec (>= 3, < 4)
|
||||
rubocop (0.47.1)
|
||||
parser (>= 2.3.3.1, < 3.0)
|
||||
powerpack (~> 0.1)
|
||||
rainbow (>= 1.99.1, < 3.0)
|
||||
ruby-progressbar (~> 1.7)
|
||||
unicode-display_width (~> 1.0, >= 1.0.1)
|
||||
rubocop-cask (0.12.0)
|
||||
public_suffix (~> 2.0)
|
||||
rubocop (~> 0.47.1)
|
||||
ruby-macho (1.1.0)
|
||||
ruby-progressbar (1.8.1)
|
||||
simplecov (0.14.1)
|
||||
docile (~> 1.1.0)
|
||||
json (>= 1.8, < 3)
|
||||
simplecov-html (~> 0.10.0)
|
||||
simplecov-html (0.10.0)
|
||||
unicode-display_width (1.2.1)
|
||||
url (0.3.2)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
codecov
|
||||
parallel_tests
|
||||
plist
|
||||
ronn
|
||||
rspec
|
||||
rspec-its
|
||||
rspec-wait
|
||||
rubocop (~> 0.47.1)
|
||||
rubocop-cask (~> 0.12.0)
|
||||
ruby-macho
|
||||
simplecov
|
||||
|
||||
BUNDLED WITH
|
||||
1.14.6
|
||||
@ -10,12 +10,7 @@ raise "Homebrew must be run under Ruby 2!" unless RUBY_TWO
|
||||
|
||||
require "pathname"
|
||||
HOMEBREW_LIBRARY_PATH = Pathname.new(__FILE__).realpath.parent
|
||||
$:.unshift(HOMEBREW_LIBRARY_PATH)
|
||||
|
||||
load_path_before_bundler = $:.dup
|
||||
require_relative "#{HOMEBREW_LIBRARY_PATH}/vendor/bundler/setup"
|
||||
ENV["HOMEBREW_GEMS_LOAD_PATH"] = ($: - load_path_before_bundler).join(":")
|
||||
|
||||
$:.unshift(HOMEBREW_LIBRARY_PATH.to_s)
|
||||
require "global"
|
||||
require "tap"
|
||||
|
||||
@ -57,22 +52,11 @@ begin
|
||||
# Add contributed commands to PATH before checking.
|
||||
path.append(Pathname.glob(Tap::TAP_DIRECTORY/"*/*/cmd"))
|
||||
|
||||
# Add RubyGems.
|
||||
HOMEBREW_GEM_HOME = HOMEBREW_LIBRARY_PATH/"vendor/#{RUBY_ENGINE}/#{RUBY_VERSION}"
|
||||
path.append(HOMEBREW_GEM_HOME/"bin")
|
||||
|
||||
# Add SCM wrappers.
|
||||
path.append(HOMEBREW_SHIMS_PATH/"scm")
|
||||
|
||||
ENV["PATH"] = path
|
||||
|
||||
# Setup RubyGems environment.
|
||||
ENV["GEM_HOME"] = ENV["GEM_PATH"] = HOMEBREW_GEM_HOME
|
||||
# Make RubyGems notice environment changes.
|
||||
Gem.clear_paths
|
||||
Gem::Specification.reset
|
||||
Homebrew.run_bundler_if_needed! unless HOMEBREW_GEM_HOME.exist?
|
||||
|
||||
if cmd
|
||||
internal_cmd = require? HOMEBREW_LIBRARY_PATH.join("cmd", cmd)
|
||||
|
||||
|
||||
@ -69,6 +69,10 @@ then
|
||||
odie "Cowardly refusing to continue at this prefix: $HOMEBREW_PREFIX"
|
||||
fi
|
||||
|
||||
# Save value to use for installing gems
|
||||
export GEM_OLD_HOME="$GEM_HOME"
|
||||
export GEM_OLD_PATH="$GEM_PATH"
|
||||
|
||||
# Users may have these set, pointing the system Ruby
|
||||
# at non-system gem paths
|
||||
unset GEM_HOME
|
||||
|
||||
@ -2,7 +2,7 @@ require "hbc/artifact/base"
|
||||
|
||||
require "hbc/utils/hash_validator"
|
||||
|
||||
require "plist"
|
||||
require "vendor/plist/plist"
|
||||
|
||||
module Hbc
|
||||
module Artifact
|
||||
|
||||
@ -26,7 +26,7 @@ module Hbc
|
||||
def install_rubocop
|
||||
capture_stderr do
|
||||
begin
|
||||
Homebrew.run_bundler_if_needed!
|
||||
Homebrew.install_gem_setup_path! "rubocop-cask", HOMEBREW_RUBOCOP_CASK_VERSION, "rubocop"
|
||||
rescue SystemExit
|
||||
raise CaskError, Tty.strip_ansi($stderr.string).chomp.sub(/\AError: /, "")
|
||||
end
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
require "hbc/container/naked"
|
||||
require "macho"
|
||||
require "vendor/macho/macho"
|
||||
|
||||
module Hbc
|
||||
class Container
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
require "open3"
|
||||
require "shellwords"
|
||||
require "plist"
|
||||
require "vendor/plist/plist"
|
||||
|
||||
require "extend/io"
|
||||
|
||||
|
||||
@ -65,7 +65,7 @@ module Homebrew
|
||||
def check_style_impl(files, output_type, options = {})
|
||||
fix = options[:fix]
|
||||
|
||||
Homebrew.run_bundler_if_needed!
|
||||
Homebrew.install_gem_setup_path! "rubocop", HOMEBREW_RUBOCOP_VERSION
|
||||
require "rubocop"
|
||||
require_relative "../rubocops"
|
||||
|
||||
|
||||
@ -2,6 +2,8 @@ unless ENV["HOMEBREW_BREW_FILE"]
|
||||
raise "HOMEBREW_BREW_FILE was not exported! Please call bin/brew directly!"
|
||||
end
|
||||
|
||||
require "constants"
|
||||
|
||||
# Path to `bin/brew` main executable in HOMEBREW_PREFIX
|
||||
HOMEBREW_BREW_FILE = Pathname.new(ENV["HOMEBREW_BREW_FILE"])
|
||||
|
||||
@ -46,8 +48,5 @@ unless defined? HOMEBREW_LIBRARY_PATH
|
||||
HOMEBREW_LIBRARY_PATH = Pathname.new(__FILE__).realpath.parent
|
||||
end
|
||||
|
||||
# Load path to vendored gems used by Homebrew
|
||||
HOMEBREW_GEMS_LOAD_PATH = ENV["HOMEBREW_GEMS_LOAD_PATH"]
|
||||
|
||||
# Load path used by standalone scripts to access the Homebrew code base
|
||||
HOMEBREW_LOAD_PATH = [HOMEBREW_LIBRARY_PATH, *HOMEBREW_GEMS_LOAD_PATH].join(":")
|
||||
HOMEBREW_LOAD_PATH = HOMEBREW_LIBRARY_PATH
|
||||
|
||||
3
Library/Homebrew/constants.rb
Normal file
3
Library/Homebrew/constants.rb
Normal file
@ -0,0 +1,3 @@
|
||||
# RuboCop version used for `brew style` and `brew cask style`
|
||||
HOMEBREW_RUBOCOP_VERSION = "0.47.1".freeze
|
||||
HOMEBREW_RUBOCOP_CASK_VERSION = "~> 0.12.0".freeze # has to be updated when RuboCop version changes
|
||||
@ -65,9 +65,6 @@ module Homebrew
|
||||
ENV.activate_extensions!
|
||||
ENV.setup_build_environment
|
||||
|
||||
# Add RubyGems (for RuboCop).
|
||||
ENV["PATH"] = PATH.new(ENV["PATH"]).append(HOMEBREW_GEM_HOME/"bin")
|
||||
|
||||
if ARGV.named.empty?
|
||||
ff = Formula
|
||||
files = Tap.map(&:formula_dir)
|
||||
|
||||
@ -35,7 +35,7 @@ module Homebrew
|
||||
end
|
||||
|
||||
def regenerate_man_pages
|
||||
Homebrew.run_bundler_if_needed!
|
||||
Homebrew.install_gem_setup_path! "ronn"
|
||||
|
||||
markup = build_man_page
|
||||
convert_man_page(markup, TARGET_DOC_PATH/"Manpage.md")
|
||||
|
||||
@ -46,10 +46,9 @@ module Homebrew
|
||||
travis = <<-EOS.undent
|
||||
language: ruby
|
||||
os: osx
|
||||
env: OSX=10.12
|
||||
osx_image: xcode8.3
|
||||
rvm: system
|
||||
cache:
|
||||
directories: /usr/local/Homebrew/Library/Homebrew/vendor
|
||||
|
||||
before_install:
|
||||
- export TRAVIS_COMMIT="$(git rev-parse --verify -q HEAD)"
|
||||
|
||||
@ -49,6 +49,8 @@ module Homebrew
|
||||
FileUtils.rm_f "test/coverage/.resultset.json"
|
||||
end
|
||||
|
||||
ENV["BUNDLE_GEMFILE"] = "#{HOMEBREW_LIBRARY_PATH}/test/Gemfile"
|
||||
|
||||
# Override author/committer as global settings might be invalid and thus
|
||||
# will cause silent failure during the setup of dummy Git repositories.
|
||||
%w[AUTHOR COMMITTER].each do |role|
|
||||
@ -57,7 +59,10 @@ module Homebrew
|
||||
ENV["GIT_#{role}_DATE"] = "Sun Jan 22 19:59:13 2017 +0000"
|
||||
end
|
||||
|
||||
Homebrew.run_bundler_if_needed!
|
||||
Homebrew.install_gem_setup_path! "bundler"
|
||||
unless quiet_system("bundle", "check")
|
||||
system "bundle", "install"
|
||||
end
|
||||
|
||||
parallel = true
|
||||
|
||||
@ -101,15 +106,10 @@ module Homebrew
|
||||
files = files.reject { |p| p =~ %r{^test/os/linux(/.*|_spec\.rb)$} }
|
||||
end
|
||||
|
||||
files.map! { |p| HOMEBREW_LIBRARY_PATH/p }
|
||||
|
||||
(HOMEBREW_LIBRARY_PATH/"vendor/#{RUBY_ENGINE}/#{RUBY_VERSION}").cd do
|
||||
if parallel
|
||||
system "parallel_rspec", *opts, "--", *args, "--", *files
|
||||
system "bundle", "exec", "parallel_rspec", *opts, "--", *args, "--", *files
|
||||
else
|
||||
system "rspec", *args, "--", *files
|
||||
end
|
||||
FileUtils.rm_rf "tmp"
|
||||
system "bundle", "exec", "rspec", *args, "--", *files
|
||||
end
|
||||
|
||||
return if $?.success?
|
||||
|
||||
@ -1,11 +1,10 @@
|
||||
require "vendor/macho/macho"
|
||||
require "os/mac/architecture_list"
|
||||
|
||||
module MachOShim
|
||||
# @private
|
||||
def macho
|
||||
@macho ||= begin
|
||||
require "macho"
|
||||
|
||||
MachO.open(to_s)
|
||||
end
|
||||
end
|
||||
@ -13,8 +12,6 @@ module MachOShim
|
||||
# @private
|
||||
def mach_data
|
||||
@mach_data ||= begin
|
||||
require "macho"
|
||||
|
||||
machos = []
|
||||
mach_data = []
|
||||
|
||||
|
||||
12
Library/Homebrew/test/Gemfile
Normal file
12
Library/Homebrew/test/Gemfile
Normal file
@ -0,0 +1,12 @@
|
||||
source "https://rubygems.org"
|
||||
|
||||
gem "parallel_tests"
|
||||
gem "rspec"
|
||||
gem "rubocop"
|
||||
gem "rspec-its", require: false
|
||||
gem "rspec-wait", require: false
|
||||
|
||||
group :coverage do
|
||||
gem "simplecov", require: false
|
||||
gem "codecov", require: false
|
||||
end
|
||||
65
Library/Homebrew/test/Gemfile.lock
Normal file
65
Library/Homebrew/test/Gemfile.lock
Normal file
@ -0,0 +1,65 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
ast (2.3.0)
|
||||
codecov (0.1.9)
|
||||
json
|
||||
simplecov
|
||||
url
|
||||
diff-lcs (1.3)
|
||||
docile (1.1.5)
|
||||
json (2.0.3)
|
||||
parallel (1.10.0)
|
||||
parallel_tests (2.13.0)
|
||||
parallel
|
||||
parser (2.4.0.0)
|
||||
ast (~> 2.2)
|
||||
powerpack (0.1.1)
|
||||
rainbow (2.2.1)
|
||||
rspec (3.5.0)
|
||||
rspec-core (~> 3.5.0)
|
||||
rspec-expectations (~> 3.5.0)
|
||||
rspec-mocks (~> 3.5.0)
|
||||
rspec-core (3.5.4)
|
||||
rspec-support (~> 3.5.0)
|
||||
rspec-expectations (3.5.0)
|
||||
diff-lcs (>= 1.2.0, < 2.0)
|
||||
rspec-support (~> 3.5.0)
|
||||
rspec-its (1.2.0)
|
||||
rspec-core (>= 3.0.0)
|
||||
rspec-expectations (>= 3.0.0)
|
||||
rspec-mocks (3.5.0)
|
||||
diff-lcs (>= 1.2.0, < 2.0)
|
||||
rspec-support (~> 3.5.0)
|
||||
rspec-support (3.5.0)
|
||||
rspec-wait (0.0.9)
|
||||
rspec (>= 3, < 4)
|
||||
rubocop (0.47.1)
|
||||
parser (>= 2.3.3.1, < 3.0)
|
||||
powerpack (~> 0.1)
|
||||
rainbow (>= 1.99.1, < 3.0)
|
||||
ruby-progressbar (~> 1.7)
|
||||
unicode-display_width (~> 1.0, >= 1.0.1)
|
||||
ruby-progressbar (1.8.1)
|
||||
simplecov (0.13.0)
|
||||
docile (~> 1.1.0)
|
||||
json (>= 1.8, < 3)
|
||||
simplecov-html (~> 0.10.0)
|
||||
simplecov-html (0.10.0)
|
||||
unicode-display_width (1.1.3)
|
||||
url (0.3.2)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
codecov
|
||||
parallel_tests
|
||||
rspec
|
||||
rspec-its
|
||||
rspec-wait
|
||||
rubocop
|
||||
simplecov
|
||||
|
||||
BUNDLED WITH
|
||||
1.14.5
|
||||
@ -24,7 +24,7 @@ describe Hbc::Cask, :cask do
|
||||
describe "load" do
|
||||
let(:tap_path) { Hbc.default_tap.path }
|
||||
let(:file_dirname) { Pathname.new(__FILE__).dirname }
|
||||
let(:relative_tap_path) { tap_path.realpath.relative_path_from(file_dirname) }
|
||||
let(:relative_tap_path) { tap_path.relative_path_from(file_dirname) }
|
||||
|
||||
it "returns an instance of the Cask for the given token" do
|
||||
c = Hbc::CaskLoader.load("local-caffeine")
|
||||
@ -56,9 +56,7 @@ describe Hbc::Cask, :cask do
|
||||
end
|
||||
|
||||
it "returns an instance of the Cask from a relative file location" do
|
||||
c = file_dirname.cd do
|
||||
Hbc::CaskLoader.load(relative_tap_path/"Casks/local-caffeine.rb")
|
||||
end
|
||||
c = Hbc::CaskLoader.load(relative_tap_path/"Casks/local-caffeine.rb")
|
||||
expect(c).to be_kind_of(Hbc::Cask)
|
||||
expect(c.token).to eq("local-caffeine")
|
||||
end
|
||||
|
||||
@ -62,7 +62,7 @@ describe Hbc::CLI::Style, :cask do
|
||||
|
||||
context "when installation succeeds" do
|
||||
before do
|
||||
allow(Homebrew).to receive(:run_bundler_if_needed!)
|
||||
allow(Homebrew).to receive(:install_gem_setup_path!)
|
||||
end
|
||||
|
||||
it "exits successfully" do
|
||||
@ -72,7 +72,7 @@ describe Hbc::CLI::Style, :cask do
|
||||
|
||||
context "when installation fails" do
|
||||
before do
|
||||
allow(Homebrew).to receive(:run_bundler_if_needed!).and_raise(SystemExit)
|
||||
allow(Homebrew).to receive(:install_gem_setup_path!).and_raise(SystemExit)
|
||||
end
|
||||
|
||||
it "raises an error" do
|
||||
|
||||
@ -89,11 +89,13 @@ RSpec.shared_context "integration test" do
|
||||
ruby_args << "-rtest/support/helper/integration_mocks"
|
||||
ruby_args << (HOMEBREW_LIBRARY_PATH/"brew.rb").resolved_path.to_s
|
||||
|
||||
Bundler.with_original_env do
|
||||
stdout, stderr, status = Open3.capture3(env, RUBY_PATH, *ruby_args, *args)
|
||||
$stdout.print stdout
|
||||
$stderr.print stderr
|
||||
status
|
||||
end
|
||||
end
|
||||
|
||||
def setup_test_formula(name, content = nil)
|
||||
case name
|
||||
|
||||
@ -2,6 +2,8 @@ unless ENV["HOMEBREW_BREW_FILE"]
|
||||
raise "HOMEBREW_BREW_FILE was not exported! Please call bin/brew directly!"
|
||||
end
|
||||
|
||||
require "constants"
|
||||
|
||||
require "tmpdir"
|
||||
require "pathname"
|
||||
|
||||
@ -16,7 +18,7 @@ end
|
||||
# Paths pointing into the Homebrew code base that persist across test runs
|
||||
HOMEBREW_LIBRARY_PATH = Pathname.new(File.expand_path("../../../..", __FILE__))
|
||||
HOMEBREW_SHIMS_PATH = HOMEBREW_LIBRARY_PATH.parent+"Homebrew/shims"
|
||||
HOMEBREW_LOAD_PATH = [File.expand_path("..", __FILE__), HOMEBREW_LIBRARY_PATH, ENV["HOMEBREW_GEMS_LOAD_PATH"]].join(":")
|
||||
HOMEBREW_LOAD_PATH = [File.expand_path("..", __FILE__), HOMEBREW_LIBRARY_PATH].join(":")
|
||||
|
||||
# Paths redirected to a temporary directory and wiped at the end of the test run
|
||||
HOMEBREW_PREFIX = Pathname.new(TEST_TMPDIR).join("prefix")
|
||||
|
||||
@ -179,36 +179,46 @@ module Homebrew
|
||||
_system(cmd, *args)
|
||||
end
|
||||
|
||||
def run_bundler_if_needed!
|
||||
return unless Pathname.glob("#{HOMEBREW_GEM_HOME}/bin/*").empty?
|
||||
def install_gem_setup_path!(name, version = nil, executable = name)
|
||||
# Respect user's preferences for where gems should be installed.
|
||||
ENV["GEM_HOME"] = ENV["GEM_OLD_HOME"].to_s
|
||||
ENV["GEM_HOME"] = Gem.user_dir if ENV["GEM_HOME"].empty?
|
||||
ENV["GEM_PATH"] = ENV["GEM_OLD_PATH"] unless ENV["GEM_OLD_PATH"].to_s.empty?
|
||||
|
||||
if Gem::Specification.find_all_by_name("bundler").empty?
|
||||
ohai "Installing Bundler..."
|
||||
# Make rubygems notice env changes.
|
||||
Gem.clear_paths
|
||||
Gem::Specification.reset
|
||||
|
||||
# Add Gem binary directory and (if missing) Ruby binary directory to PATH.
|
||||
path = PATH.new(ENV["PATH"])
|
||||
path.prepend(RUBY_BIN) if which("ruby") != RUBY_PATH
|
||||
path.prepend(Gem.bindir)
|
||||
ENV["PATH"] = path
|
||||
|
||||
if Gem::Specification.find_all_by_name(name, version).empty?
|
||||
ohai "Installing or updating '#{name}' gem"
|
||||
install_args = %W[--no-ri --no-rdoc #{name}]
|
||||
install_args << "--version" << version if version
|
||||
|
||||
# Do `gem install [...]` without having to spawn a separate process or
|
||||
# having to find the right `gem` binary for the running Ruby interpreter.
|
||||
require "rubygems/commands/install_command"
|
||||
install_cmd = Gem::Commands::InstallCommand.new
|
||||
install_cmd.handle_options(%w[--no-ri --no-rdoc bundler])
|
||||
install_cmd.handle_options(install_args)
|
||||
exit_code = 1 # Should not matter as `install_cmd.execute` always throws.
|
||||
begin
|
||||
install_cmd.execute
|
||||
rescue Gem::SystemExitException => e
|
||||
exit_code = e.exit_code
|
||||
end
|
||||
odie "Failed to install Bundler!" if exit_code.nonzero?
|
||||
odie "Failed to install/update the '#{name}' gem." if exit_code.nonzero?
|
||||
end
|
||||
|
||||
HOMEBREW_REPOSITORY.cd do
|
||||
unless quiet_system("bundle", "check")
|
||||
ohai "Installing RubyGems..."
|
||||
success = system "bundle", "install",
|
||||
"--path", "Library/Homebrew/vendor",
|
||||
"--standalone",
|
||||
"--jobs", "3"
|
||||
odie "Failed to install RubyGems!" unless success
|
||||
end
|
||||
end
|
||||
return if which(executable)
|
||||
odie <<-EOS.undent
|
||||
The '#{name}' gem is installed but couldn't find '#{executable}' in the PATH:
|
||||
#{ENV["PATH"]}
|
||||
EOS
|
||||
end
|
||||
|
||||
# Hash of Module => Set(method_names)
|
||||
|
||||
54
Library/Homebrew/vendor/README.md
vendored
Normal file
54
Library/Homebrew/vendor/README.md
vendored
Normal file
@ -0,0 +1,54 @@
|
||||
Vendored Dependencies
|
||||
=====================
|
||||
|
||||
* [plist](https://github.com/patsplat/plist), version 3.3.0
|
||||
|
||||
* [ruby-macho](https://github.com/Homebrew/ruby-macho), version 1.1.0
|
||||
|
||||
## Licenses:
|
||||
|
||||
### plist
|
||||
|
||||
> Copyright (c) 2006-2010, Ben Bleything and Patrick May
|
||||
>
|
||||
> Permission is hereby granted, free of charge, to any person obtaining
|
||||
> a copy of this software and associated documentation files (the
|
||||
> "Software"), to deal in the Software without restriction, including
|
||||
> without limitation the rights to use, copy, modify, merge, publish,
|
||||
> distribute, sublicense, and/or sell copies of the Software, and to
|
||||
> permit persons to whom the Software is furnished to do so, subject to
|
||||
> the following conditions:
|
||||
>
|
||||
> The above copyright notice and this permission notice shall be included
|
||||
> in all copies or substantial portions of the Software.
|
||||
>
|
||||
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
|
||||
> KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
|
||||
> WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
> NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
> LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
> OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
> WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
### ruby-macho
|
||||
|
||||
> The MIT License
|
||||
> Copyright (c) 2015, 2016, 2017 William Woodruff <william @ tuffbizz.com>
|
||||
>
|
||||
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
> of this software and associated documentation files (the "Software"), to deal
|
||||
> in the Software without restriction, including without limitation the rights
|
||||
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
> copies of the Software, and to permit persons to whom the Software is
|
||||
> furnished to do so, subject to the following conditions:
|
||||
>
|
||||
> The above copyright notice and this permission notice shall be included in
|
||||
> all copies or substantial portions of the Software.
|
||||
>
|
||||
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
> THE SOFTWARE.
|
||||
42
Library/Homebrew/vendor/bundler/setup.rb
vendored
42
Library/Homebrew/vendor/bundler/setup.rb
vendored
@ -1,42 +0,0 @@
|
||||
require 'rbconfig'
|
||||
# ruby 1.8.7 doesn't define RUBY_ENGINE
|
||||
ruby_engine = defined?(RUBY_ENGINE) ? RUBY_ENGINE : 'ruby'
|
||||
ruby_version = RbConfig::CONFIG["ruby_version"]
|
||||
path = File.expand_path('..', __FILE__)
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rake-12.0.0/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/ast-2.3.0/lib"
|
||||
$:.unshift "#{path}/"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/extensions/universal-darwin-16/2.0.0/json-2.1.0"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/json-2.1.0/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/docile-1.1.5/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/simplecov-html-0.10.0/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/simplecov-0.14.1/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/url-0.3.2/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/codecov-0.1.10/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/diff-lcs-1.3/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/extensions/universal-darwin-16/2.0.0/hpricot-0.8.6"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/hpricot-0.8.6/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/mustache-1.0.5/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/parallel-1.11.1/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/parallel_tests-2.14.1/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/parser-2.4.0.0/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/plist-3.3.0/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/powerpack-0.1.1/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/public_suffix-2.0.5/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/extensions/universal-darwin-16/2.0.0/rainbow-2.2.2"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rainbow-2.2.2/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/extensions/universal-darwin-16/2.0.0/rdiscount-2.2.0.1"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rdiscount-2.2.0.1/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/ronn-0.7.3/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rspec-support-3.6.0/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rspec-core-3.6.0/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rspec-expectations-3.6.0/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rspec-mocks-3.6.0/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rspec-3.6.0/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rspec-its-1.2.0/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rspec-wait-0.0.9/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/ruby-progressbar-1.8.1/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/unicode-display_width-1.2.1/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-0.47.1/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-cask-0.12.0/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/ruby-macho-1.1.0/lib"
|
||||
6
Library/Homebrew/vendor/ruby/2.0.0/gems/plist-3.3.0/lib/plist.rb → Library/Homebrew/vendor/plist/plist.rb
vendored
Normal file → Executable file
6
Library/Homebrew/vendor/ruby/2.0.0/gems/plist-3.3.0/lib/plist.rb → Library/Homebrew/vendor/plist/plist.rb
vendored
Normal file → Executable file
@ -13,9 +13,9 @@ require 'base64'
|
||||
require 'cgi'
|
||||
require 'stringio'
|
||||
|
||||
require 'plist/generator'
|
||||
require 'plist/parser'
|
||||
require 'plist/version'
|
||||
require_relative 'plist/generator'
|
||||
require_relative 'plist/parser'
|
||||
require_relative 'plist/version'
|
||||
|
||||
module Plist
|
||||
end
|
||||
0
Library/Homebrew/vendor/ruby/2.0.0/gems/plist-3.3.0/lib/plist/generator.rb → Library/Homebrew/vendor/plist/plist/generator.rb
vendored
Normal file → Executable file
0
Library/Homebrew/vendor/ruby/2.0.0/gems/plist-3.3.0/lib/plist/generator.rb → Library/Homebrew/vendor/plist/plist/generator.rb
vendored
Normal file → Executable file
0
Library/Homebrew/vendor/ruby/2.0.0/gems/plist-3.3.0/lib/plist/version.rb → Library/Homebrew/vendor/plist/plist/version.rb
vendored
Normal file → Executable file
0
Library/Homebrew/vendor/ruby/2.0.0/gems/plist-3.3.0/lib/plist/version.rb → Library/Homebrew/vendor/plist/plist/version.rb
vendored
Normal file → Executable file
@ -1,20 +0,0 @@
|
||||
Copyright (c) 2006-2010, Ben Bleything and Patrick May
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
|
||||
KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
|
||||
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
@ -1,21 +0,0 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2015, 2016 William Woodruff <william @ tuffbizz.com>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
Loading…
x
Reference in New Issue
Block a user