bundler 2.0.1 → 2.0.2
This diff has not been reviewed by any users.
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +26 -0
- data/README.md +1 -1
- data/bundler.gemspec +6 -5
- data/lib/bundler/build_metadata.rb +2 -2
- data/lib/bundler/cli.rb +3 -1
- data/lib/bundler/cli/common.rb +1 -1
- data/lib/bundler/cli/install.rb +9 -8
- data/lib/bundler/cli/issue.rb +2 -2
- data/lib/bundler/compatibility_guard.rb +0 -1
- data/lib/bundler/definition.rb +3 -1
- data/lib/bundler/dsl.rb +1 -1
- data/lib/bundler/env.rb +2 -8
- data/lib/bundler/feature_flag.rb +1 -1
- data/lib/bundler/fetcher/downloader.rb +1 -1
- data/lib/bundler/gem_helper.rb +37 -22
- data/lib/bundler/injector.rb +7 -7
- data/lib/bundler/installer/parallel_installer.rb +0 -4
- data/lib/bundler/plugin.rb +13 -11
- data/lib/bundler/plugin/index.rb +4 -1
- data/lib/bundler/rubygems_ext.rb +0 -1
- data/lib/bundler/rubygems_integration.rb +19 -2
- data/lib/bundler/shared_helpers.rb +7 -5
- data/lib/bundler/templates/Executable.bundler +1 -1
- data/lib/bundler/templates/newgem/newgem.gemspec.tt +7 -12
- data/lib/bundler/templates/newgem/test/test_helper.rb.tt +4 -0
- data/lib/bundler/vendor/fileutils/lib/fileutils.rb +151 -48
- data/lib/bundler/vendor/fileutils/lib/fileutils/version.rb +5 -0
- data/lib/bundler/vendor/thor/lib/thor/actions.rb +14 -4
- data/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +11 -2
- data/lib/bundler/vendor/thor/lib/thor/base.rb +3 -4
- data/lib/bundler/vendor/thor/lib/thor/error.rb +82 -0
- data/lib/bundler/vendor/thor/lib/thor/group.rb +2 -2
- data/lib/bundler/vendor/thor/lib/thor/parser/options.rb +7 -2
- data/lib/bundler/vendor/thor/lib/thor/runner.rb +2 -2
- data/lib/bundler/vendor/thor/lib/thor/shell.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +52 -7
- data/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/lib/bundler/version.rb +1 -1
- data/man/bundle-add.1 +1 -1
- data/man/bundle-add.1.txt +1 -1
- data/man/bundle-binstubs.1 +1 -1
- data/man/bundle-binstubs.1.txt +1 -1
- data/man/bundle-check.1 +1 -1
- data/man/bundle-check.1.txt +1 -1
- data/man/bundle-clean.1 +1 -1
- data/man/bundle-clean.1.txt +1 -1
- data/man/bundle-config.1 +2 -2
- data/man/bundle-config.1.txt +3 -3
- data/man/bundle-config.ronn +1 -1
- data/man/bundle-doctor.1 +1 -1
- data/man/bundle-doctor.1.txt +1 -1
- data/man/bundle-exec.1 +1 -1
- data/man/bundle-exec.1.txt +1 -1
- data/man/bundle-gem.1 +1 -1
- data/man/bundle-gem.1.txt +1 -1
- data/man/bundle-info.1 +1 -1
- data/man/bundle-info.1.txt +1 -1
- data/man/bundle-init.1 +2 -2
- data/man/bundle-init.1.txt +2 -2
- data/man/bundle-init.ronn +1 -1
- data/man/bundle-inject.1 +1 -1
- data/man/bundle-inject.1.txt +1 -1
- data/man/bundle-install.1 +1 -1
- data/man/bundle-install.1.txt +1 -1
- data/man/bundle-list.1 +1 -1
- data/man/bundle-list.1.txt +1 -1
- data/man/bundle-lock.1 +1 -1
- data/man/bundle-lock.1.txt +1 -1
- data/man/bundle-open.1 +1 -1
- data/man/bundle-open.1.txt +1 -1
- data/man/bundle-outdated.1 +1 -1
- data/man/bundle-outdated.1.txt +1 -1
- data/man/bundle-package.1 +1 -1
- data/man/bundle-package.1.txt +1 -1
- data/man/bundle-platform.1 +1 -1
- data/man/bundle-platform.1.txt +1 -1
- data/man/bundle-pristine.1 +1 -1
- data/man/bundle-pristine.1.txt +1 -1
- data/man/bundle-remove.1 +1 -1
- data/man/bundle-remove.1.txt +1 -1
- data/man/bundle-show.1 +1 -1
- data/man/bundle-show.1.txt +1 -1
- data/man/bundle-update.1 +1 -1
- data/man/bundle-update.1.txt +1 -1
- data/man/bundle-viz.1 +1 -1
- data/man/bundle-viz.1.txt +1 -1
- data/man/bundle.1 +2 -2
- data/man/bundle.1.txt +2 -2
- data/man/bundle.ronn +1 -1
- data/man/gemfile.5 +2 -2
- data/man/gemfile.5.ronn +1 -1
- data/man/gemfile.5.txt +2 -2
- metadata +23 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ba9f01c9d4d5c45ebdad1d3d271fae57c3e0b2969d56b1b4bf2d03580e3acd6f
|
4
|
+
data.tar.gz: b25dafd15d9cb0f49aa1aee5f0b9e86c9ba1a35d8177432d747a17669b8cdb8e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 933f1a8367648b2d60a29f09649c108548e837c32778e337bc6490619d81e09920110802cad428c82c51418e8632fdc39415602f41104d6775509dd16a217654
|
7
|
+
data.tar.gz: 07a08bb7fb1d8d20793b4fa7c7088c73a0afecb3832d8194ed9fbc14a6e2dee07f9a519e28e1450cd191d913d3da3942aa60be9fe2bb1592d6e2e7f0c9d62678
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,29 @@
|
|
1
|
+
## 2.0.2 (2019-05-13)
|
2
|
+
|
3
|
+
Changes:
|
4
|
+
|
5
|
+
- Fixes for Bundler integration with ruby-src ([#6941](https://github.com/bundler/bundler/pull/6941), [#6973](https://github.com/bundler/bundler/pull/6973), [#6977](https://github.com/bundler/bundler/pull/6977), [#6315](https://github.com/bundler/bundler/pull/6315), [#7061](https://github.com/bundler/bundler/pull/7061))
|
6
|
+
- Use `__dir__` instead of `__FILE__` when generating a gem with `bundle gem` ([#6503](https://github.com/bundler/bundler/pull/6503))
|
7
|
+
- Use `https` on externals links in the Bundler gemspec ([#6721](https://github.com/bundler/bundler/pull/6721))
|
8
|
+
- Removed duplicate gem names from the suggested `did you mean` list for gem typos ([#6739](https://github.com/bundler/bundler/pull/6739))
|
9
|
+
- Removed Ruby 1.x compatibility code ([#6764](https://github.com/bundler/bundler/pull/6764), [#6806](https://github.com/bundler/bundler/pull/6806))
|
10
|
+
- Fixed an issue where `bundle remove` would crash with certain Gemfiles ([#6768](https://github.com/bundler/bundler/pull/6769))
|
11
|
+
- Fixed indentation in the Bundler executable template ([#6773](https://github.com/bundler/bundler/pull/6773))
|
12
|
+
- Fixed an issue where plugins could register for the same Bundler hook multiple times ([#6775](https://github.com/bundler/bundler/pull/6775))
|
13
|
+
- Changed the "multiple sources" message in `bundle install` to be a warning instead of an error ([#6790](https://github.com/bundler/bundler/pull/6790))
|
14
|
+
- Fixed a bug where path gems would break when using `only_update_to_newer_versions` ([#6774](https://github.com/bundler/bundler/pull/6774))
|
15
|
+
- Fixed a bug where installing plugins with the `--delpoyment` setting would fail ([#6805](https://github.com/bundler/bundler/pull/6805))
|
16
|
+
- Fixed an issue where `bundle update` couldn't update & install a gem when `no_install` was set (a `bundle package` config) ([#7078](https://github.com/bundler/bundler/pull/7078))
|
17
|
+
- Fixed an issue where users could not run `bundle exec` on default gems ([#6963](https://github.com/bundler/bundler/pull/6963))
|
18
|
+
- Updated vendor libraries to their latest version ([#7076](https://github.com/bundler/bundler/pull/7067), [#7068](https://github.com/bundler/bundler/pull/7068))
|
19
|
+
- Fixed an issue where the `github` source was not using `https` by default that we mentioned in the 2.0 release ([#7182](https://github.com/bundler/bundler/pull/7182))
|
20
|
+
- Fixed an issue where `rake release` was not outputting the message to users asking for a 2fa token ([#7199](https://github.com/bundler/bundler/pull/7199))
|
21
|
+
|
22
|
+
Documentation:
|
23
|
+
|
24
|
+
- Fix incorrect documented `BUNDLE_PATH_RELATIVE_TO_CWD` env var ([#6751](https://github.com/bundler/bundler/pull/6751))
|
25
|
+
- Update URLs in Bundler's documentation to use `https` ([#6935](https://github.com/bundler/bundler/pull/6935))
|
26
|
+
|
1
27
|
## 2.0.1 (2019-01-04)
|
2
28
|
|
3
29
|
Changes:
|
data/README.md
CHANGED
data/bundler.gemspec
CHANGED
@@ -5,7 +5,7 @@ begin
|
|
5
5
|
require File.expand_path("../lib/bundler/version", __FILE__)
|
6
6
|
rescue LoadError
|
7
7
|
# for Ruby core repository
|
8
|
-
require File.expand_path("../
|
8
|
+
require File.expand_path("../version", __FILE__)
|
9
9
|
end
|
10
10
|
|
11
11
|
Gem::Specification.new do |s|
|
@@ -19,16 +19,16 @@ Gem::Specification.new do |s|
|
|
19
19
|
"Yehuda Katz"
|
20
20
|
]
|
21
21
|
s.email = ["team@bundler.io"]
|
22
|
-
s.homepage = "
|
22
|
+
s.homepage = "https://bundler.io"
|
23
23
|
s.summary = "The best way to manage your application's dependencies"
|
24
24
|
s.description = "Bundler manages an application's dependencies through its entire life, across many machines, systematically and repeatably"
|
25
25
|
|
26
26
|
if s.respond_to?(:metadata=)
|
27
27
|
s.metadata = {
|
28
|
-
"bug_tracker_uri" => "
|
28
|
+
"bug_tracker_uri" => "https://github.com/bundler/bundler/issues",
|
29
29
|
"changelog_uri" => "https://github.com/bundler/bundler/blob/master/CHANGELOG.md",
|
30
30
|
"homepage_uri" => "https://bundler.io/",
|
31
|
-
"source_code_uri" => "
|
31
|
+
"source_code_uri" => "https://github.com/bundler/bundler/",
|
32
32
|
}
|
33
33
|
end
|
34
34
|
|
@@ -42,10 +42,11 @@ Gem::Specification.new do |s|
|
|
42
42
|
|
43
43
|
s.add_development_dependency "automatiek", "~> 0.1.0"
|
44
44
|
s.add_development_dependency "mustache", "0.99.6"
|
45
|
-
s.add_development_dependency "rake", "~>
|
45
|
+
s.add_development_dependency "rake", "~> 12.0"
|
46
46
|
s.add_development_dependency "rdiscount", "~> 2.2"
|
47
47
|
s.add_development_dependency "ronn", "~> 0.7.3"
|
48
48
|
s.add_development_dependency "rspec", "~> 3.6"
|
49
|
+
s.add_development_dependency "rubocop", "= 0.50.0"
|
49
50
|
|
50
51
|
base_dir = File.dirname(__FILE__).gsub(%r{([^A-Za-z0-9_\-.,:\/@\n])}, "\\\\\\1")
|
51
52
|
s.files = IO.popen("git -C #{base_dir} ls-files -z", &:read).split("\x0").select {|f| f.match(%r{^(lib|exe)/}) }
|
@@ -4,8 +4,8 @@ module Bundler
|
|
4
4
|
# Represents metadata from when the Bundler gem was built.
|
5
5
|
module BuildMetadata
|
6
6
|
# begin ivars
|
7
|
-
@built_at = "2019-
|
8
|
-
@git_commit_sha = "
|
7
|
+
@built_at = "2019-06-13".freeze
|
8
|
+
@git_commit_sha = "496bca538".freeze
|
9
9
|
@release = true
|
10
10
|
# end ivars
|
11
11
|
|
data/lib/bundler/cli.rb
CHANGED
@@ -277,7 +277,9 @@ module Bundler
|
|
277
277
|
def update(*gems)
|
278
278
|
SharedHelpers.major_deprecation(3, "The `--force` option has been renamed to `--redownload`") if ARGV.include?("--force")
|
279
279
|
require "bundler/cli/update"
|
280
|
-
|
280
|
+
Bundler.settings.temporary(:no_install => false) do
|
281
|
+
Update.new(options, gems).run
|
282
|
+
end
|
281
283
|
end
|
282
284
|
|
283
285
|
desc "show GEM [OPTIONS]", "Shows all gems that are part of the bundle, or the path to a given gem"
|
data/lib/bundler/cli/common.rb
CHANGED
@@ -72,7 +72,7 @@ module Bundler
|
|
72
72
|
end
|
73
73
|
|
74
74
|
def self.ensure_all_gems_in_lockfile!(names, locked_gems = Bundler.locked_gems)
|
75
|
-
locked_names = locked_gems.specs.map(&:name)
|
75
|
+
locked_names = locked_gems.specs.map(&:name).uniq
|
76
76
|
names.-(locked_names).each do |g|
|
77
77
|
raise GemNotFound, gem_not_found_message(g, locked_names)
|
78
78
|
end
|
data/lib/bundler/cli/install.rb
CHANGED
@@ -202,15 +202,16 @@ module Bundler
|
|
202
202
|
end
|
203
203
|
|
204
204
|
def warn_ambiguous_gems
|
205
|
+
# TODO: remove this when we drop Bundler 1.x support
|
205
206
|
Installer.ambiguous_gems.to_a.each do |name, installed_from_uri, *also_found_in_uris|
|
206
|
-
Bundler.ui.
|
207
|
-
Bundler.ui.
|
208
|
-
Bundler.ui.
|
209
|
-
also_found_in_uris.each {|uri| Bundler.ui.
|
210
|
-
Bundler.ui.
|
211
|
-
Bundler.ui.
|
212
|
-
Bundler.ui.
|
213
|
-
Bundler.ui.
|
207
|
+
Bundler.ui.warn "Warning: the gem '#{name}' was found in multiple sources."
|
208
|
+
Bundler.ui.warn "Installed from: #{installed_from_uri}"
|
209
|
+
Bundler.ui.warn "Also found in:"
|
210
|
+
also_found_in_uris.each {|uri| Bundler.ui.warn " * #{uri}" }
|
211
|
+
Bundler.ui.warn "You should add a source requirement to restrict this gem to your preferred source."
|
212
|
+
Bundler.ui.warn "For example:"
|
213
|
+
Bundler.ui.warn " gem '#{name}', :source => '#{installed_from_uri}'"
|
214
|
+
Bundler.ui.warn "Then uninstall the gem '#{name}' (or delete all bundled gems) and then install again."
|
214
215
|
end
|
215
216
|
end
|
216
217
|
end
|
data/lib/bundler/cli/issue.rb
CHANGED
@@ -13,10 +13,10 @@ module Bundler
|
|
13
13
|
https://github.com/bundler/bundler/blob/master/doc/TROUBLESHOOTING.md
|
14
14
|
|
15
15
|
2. Instructions for common Bundler uses can be found on the documentation
|
16
|
-
site:
|
16
|
+
site: https://bundler.io/
|
17
17
|
|
18
18
|
3. Information about each Bundler command can be found in the Bundler
|
19
|
-
man pages:
|
19
|
+
man pages: https://bundler.io/man/bundle.1.html
|
20
20
|
|
21
21
|
Hopefully the troubleshooting steps above resolved your problem! If things
|
22
22
|
still aren't working the way you expect them to, please let us know so
|
data/lib/bundler/definition.rb
CHANGED
@@ -977,7 +977,9 @@ module Bundler
|
|
977
977
|
dependencies_by_name = dependencies.inject({}) {|memo, dep| memo.update(dep.name => dep) }
|
978
978
|
@locked_gems.specs.reduce({}) do |requirements, locked_spec|
|
979
979
|
name = locked_spec.name
|
980
|
-
|
980
|
+
dependency = dependencies_by_name[name]
|
981
|
+
next requirements if @locked_gems.dependencies[name] != dependency
|
982
|
+
next requirements if dependency && dependency.source.is_a?(Source::Path)
|
981
983
|
dep = Gem::Dependency.new(name, ">= #{locked_spec.version}")
|
982
984
|
requirements[name] = DepProxy.new(dep, locked_spec.platform)
|
983
985
|
requirements
|
data/lib/bundler/dsl.rb
CHANGED
@@ -305,7 +305,7 @@ module Bundler
|
|
305
305
|
# end
|
306
306
|
repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/")
|
307
307
|
# TODO: 2.0 upgrade this setting to the default
|
308
|
-
if Bundler.
|
308
|
+
if Bundler.feature_flag.github_https?
|
309
309
|
Bundler::SharedHelpers.major_deprecation 3, "The `github.https` setting will be removed"
|
310
310
|
"https://github.com/#{repo_name}.git"
|
311
311
|
else
|
data/lib/bundler/env.rb
CHANGED
@@ -70,14 +70,8 @@ module Bundler
|
|
70
70
|
|
71
71
|
def self.ruby_version
|
72
72
|
str = String.new("#{RUBY_VERSION}")
|
73
|
-
|
74
|
-
|
75
|
-
str << " patchlevel #{RUBY_PATCHLEVEL}" if defined? RUBY_PATCHLEVEL
|
76
|
-
str << ") [#{RUBY_PLATFORM}]"
|
77
|
-
else
|
78
|
-
str << "p#{RUBY_PATCHLEVEL}" if defined? RUBY_PATCHLEVEL
|
79
|
-
str << " (#{RUBY_RELEASE_DATE} revision #{RUBY_REVISION}) [#{RUBY_PLATFORM}]"
|
80
|
-
end
|
73
|
+
str << "p#{RUBY_PATCHLEVEL}" if defined? RUBY_PATCHLEVEL
|
74
|
+
str << " (#{RUBY_RELEASE_DATE} revision #{RUBY_REVISION}) [#{RUBY_PLATFORM}]"
|
81
75
|
end
|
82
76
|
|
83
77
|
def self.git_version
|
data/lib/bundler/feature_flag.rb
CHANGED
@@ -19,7 +19,7 @@ module Bundler
|
|
19
19
|
def self.settings_method(name, key, &default)
|
20
20
|
define_method(name) do
|
21
21
|
value = Bundler.settings[key]
|
22
|
-
value = instance_eval(&default) if value.nil?
|
22
|
+
value = instance_eval(&default) if value.nil?
|
23
23
|
value
|
24
24
|
end
|
25
25
|
end
|
@@ -37,7 +37,7 @@ module Bundler
|
|
37
37
|
when Net::HTTPUnauthorized
|
38
38
|
raise AuthenticationRequiredError, uri.host
|
39
39
|
when Net::HTTPNotFound
|
40
|
-
raise FallbackError, "Net::HTTPNotFound"
|
40
|
+
raise FallbackError, "Net::HTTPNotFound: #{URICredentialsFilter.credential_filtered_uri(uri)}"
|
41
41
|
else
|
42
42
|
raise HTTPError, "#{response.class}#{": #{response.body}" unless response.body.empty?}"
|
43
43
|
end
|
data/lib/bundler/gem_helper.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require "bundler/vendored_thor" unless defined?(Thor)
|
4
4
|
require "bundler"
|
5
|
+
require "shellwords"
|
5
6
|
|
6
7
|
module Bundler
|
7
8
|
class GemHelper
|
@@ -74,7 +75,8 @@ module Bundler
|
|
74
75
|
|
75
76
|
def build_gem
|
76
77
|
file_name = nil
|
77
|
-
|
78
|
+
gem = ENV["BUNDLE_GEM"] ? ENV["BUNDLE_GEM"] : "gem"
|
79
|
+
sh(%W[#{gem} build -V #{spec_path}]) do
|
78
80
|
file_name = File.basename(built_gem_path)
|
79
81
|
SharedHelpers.filesystem_access(File.join(base, "pkg")) {|p| FileUtils.mkdir_p(p) }
|
80
82
|
FileUtils.mv(built_gem_path, "pkg")
|
@@ -85,21 +87,26 @@ module Bundler
|
|
85
87
|
|
86
88
|
def install_gem(built_gem_path = nil, local = false)
|
87
89
|
built_gem_path ||= build_gem
|
88
|
-
|
89
|
-
|
90
|
+
gem = ENV["BUNDLE_GEM"] ? ENV["BUNDLE_GEM"] : "gem"
|
91
|
+
cmd = %W[#{gem} install #{built_gem_path}]
|
92
|
+
cmd << "--local" if local
|
93
|
+
out, status = sh_with_status(cmd)
|
94
|
+
unless status.success? && out[/Successfully installed/]
|
95
|
+
raise "Couldn't install gem, run `gem install #{built_gem_path}' for more detailed output"
|
96
|
+
end
|
90
97
|
Bundler.ui.confirm "#{name} (#{version}) installed."
|
91
98
|
end
|
92
99
|
|
93
100
|
protected
|
94
101
|
|
95
102
|
def rubygem_push(path)
|
96
|
-
gem_command =
|
97
|
-
gem_command
|
98
|
-
gem_command
|
103
|
+
gem_command = %W[gem push #{path}]
|
104
|
+
gem_command << "--key" << gem_key if gem_key
|
105
|
+
gem_command << "--host" << allowed_push_host if allowed_push_host
|
99
106
|
unless allowed_push_host || Bundler.user_home.join(".gem/credentials").file?
|
100
107
|
raise "Your rubygems.org credentials aren't set. Run `gem push` to set them."
|
101
108
|
end
|
102
|
-
|
109
|
+
sh_with_input(gem_command)
|
103
110
|
Bundler.ui.confirm "Pushed #{name} #{version} to #{gem_push_host}"
|
104
111
|
end
|
105
112
|
|
@@ -127,12 +134,14 @@ module Bundler
|
|
127
134
|
|
128
135
|
def perform_git_push(options = "")
|
129
136
|
cmd = "git push #{options}"
|
130
|
-
out,
|
131
|
-
|
137
|
+
out, status = sh_with_status(cmd)
|
138
|
+
return if status.success?
|
139
|
+
cmd = cmd.shelljoin if cmd.respond_to?(:shelljoin)
|
140
|
+
raise "Couldn't git push. `#{cmd}' failed with the following output:\n\n#{out}\n"
|
132
141
|
end
|
133
142
|
|
134
143
|
def already_tagged?
|
135
|
-
return false unless sh(
|
144
|
+
return false unless sh(%w[git tag]).split(/\n/).include?(version_tag)
|
136
145
|
Bundler.ui.confirm "Tag #{version_tag} has already been created."
|
137
146
|
true
|
138
147
|
end
|
@@ -142,20 +151,20 @@ module Bundler
|
|
142
151
|
end
|
143
152
|
|
144
153
|
def clean?
|
145
|
-
|
154
|
+
sh_with_status(%w[git diff --exit-code])[1].success?
|
146
155
|
end
|
147
156
|
|
148
157
|
def committed?
|
149
|
-
|
158
|
+
sh_with_status(%w[git diff-index --quiet --cached HEAD])[1].success?
|
150
159
|
end
|
151
160
|
|
152
161
|
def tag_version
|
153
|
-
sh
|
162
|
+
sh %W[git tag -m Version\ #{version} #{version_tag}]
|
154
163
|
Bundler.ui.confirm "Tagged #{version_tag}."
|
155
164
|
yield if block_given?
|
156
165
|
rescue RuntimeError
|
157
166
|
Bundler.ui.error "Untagging #{version_tag} due to error."
|
158
|
-
|
167
|
+
sh_with_status %W[git tag -d #{version_tag}]
|
159
168
|
raise
|
160
169
|
end
|
161
170
|
|
@@ -171,22 +180,28 @@ module Bundler
|
|
171
180
|
gemspec.name
|
172
181
|
end
|
173
182
|
|
183
|
+
def sh_with_input(cmd)
|
184
|
+
Bundler.ui.debug(cmd)
|
185
|
+
SharedHelpers.chdir(base) do
|
186
|
+
abort unless Kernel.system(*cmd)
|
187
|
+
end
|
188
|
+
end
|
189
|
+
|
174
190
|
def sh(cmd, &block)
|
175
|
-
out,
|
176
|
-
unless
|
191
|
+
out, status = sh_with_status(cmd, &block)
|
192
|
+
unless status.success?
|
193
|
+
cmd = cmd.shelljoin if cmd.respond_to?(:shelljoin)
|
177
194
|
raise(out.empty? ? "Running `#{cmd}` failed. Run this command directly for more detailed output." : out)
|
178
195
|
end
|
179
196
|
out
|
180
197
|
end
|
181
198
|
|
182
|
-
def
|
183
|
-
cmd += " 2>&1"
|
184
|
-
outbuf = String.new
|
199
|
+
def sh_with_status(cmd, &block)
|
185
200
|
Bundler.ui.debug(cmd)
|
186
201
|
SharedHelpers.chdir(base) do
|
187
|
-
outbuf =
|
188
|
-
status =
|
189
|
-
block.call(outbuf) if status.
|
202
|
+
outbuf = IO.popen(cmd, :err => [:child, :out], &:read)
|
203
|
+
status = $?
|
204
|
+
block.call(outbuf) if status.success? && block
|
190
205
|
[outbuf, status]
|
191
206
|
end
|
192
207
|
end
|
data/lib/bundler/injector.rb
CHANGED
@@ -123,7 +123,7 @@ module Bundler
|
|
123
123
|
end
|
124
124
|
end
|
125
125
|
|
126
|
-
#
|
126
|
+
# evaluates a gemfile to remove the specified gem
|
127
127
|
# from it.
|
128
128
|
def remove_deps(gemfile_path)
|
129
129
|
initial_gemfile = IO.readlines(gemfile_path)
|
@@ -136,8 +136,8 @@ module Bundler
|
|
136
136
|
|
137
137
|
removed_deps = remove_gems_from_dependencies(builder, @deps, gemfile_path)
|
138
138
|
|
139
|
-
# abort the
|
140
|
-
# no need to operate on gemfile
|
139
|
+
# abort the operation if no gems were removed
|
140
|
+
# no need to operate on gemfile further
|
141
141
|
return [] if removed_deps.empty?
|
142
142
|
|
143
143
|
cleaned_gemfile = remove_gems_from_gemfile(@deps, gemfile_path)
|
@@ -153,8 +153,8 @@ module Bundler
|
|
153
153
|
|
154
154
|
# @param [Dsl] builder Dsl object of current Gemfile.
|
155
155
|
# @param [Array] gems Array of names of gems to be removed.
|
156
|
-
# @param [Pathname]
|
157
|
-
# @return [Array]
|
156
|
+
# @param [Pathname] gemfile_path Path of the Gemfile.
|
157
|
+
# @return [Array] Array of removed dependencies.
|
158
158
|
def remove_gems_from_dependencies(builder, gems, gemfile_path)
|
159
159
|
removed_deps = []
|
160
160
|
|
@@ -206,7 +206,7 @@ module Bundler
|
|
206
206
|
nested_blocks -= 1
|
207
207
|
|
208
208
|
gemfile.each_with_index do |line, index|
|
209
|
-
next unless !line.nil? && line.
|
209
|
+
next unless !line.nil? && line.strip.start_with?(block_name)
|
210
210
|
if gemfile[index + 1] =~ /^\s*end\s*$/
|
211
211
|
gemfile[index] = nil
|
212
212
|
gemfile[index + 1] = nil
|
@@ -222,7 +222,7 @@ module Bundler
|
|
222
222
|
# @param [Array] removed_deps Array of removed dependencies.
|
223
223
|
# @param [Array] initial_gemfile Contents of original Gemfile before any operation.
|
224
224
|
def cross_check_for_errors(gemfile_path, original_deps, removed_deps, initial_gemfile)
|
225
|
-
#
|
225
|
+
# evaluate the new gemfile to look for any failure cases
|
226
226
|
builder = Dsl.new
|
227
227
|
builder.eval_gemfile(gemfile_path)
|
228
228
|
|
@@ -91,10 +91,6 @@ module Bundler
|
|
91
91
|
end
|
92
92
|
|
93
93
|
def call
|
94
|
-
# Since `autoload` has the potential for threading issues on 1.8.7
|
95
|
-
# TODO: remove in bundler 2.0
|
96
|
-
require "bundler/gem_remote_fetcher" if RUBY_VERSION < "1.9"
|
97
|
-
|
98
94
|
check_for_corrupt_lockfile
|
99
95
|
|
100
96
|
if @size > 1
|
data/lib/bundler/plugin.rb
CHANGED
@@ -53,20 +53,22 @@ module Bundler
|
|
53
53
|
# @param [Pathname] gemfile path
|
54
54
|
# @param [Proc] block that can be evaluated for (inline) Gemfile
|
55
55
|
def gemfile_install(gemfile = nil, &inline)
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
56
|
+
Bundler.settings.temporary(:frozen => false, :deployment => false) do
|
57
|
+
builder = DSL.new
|
58
|
+
if block_given?
|
59
|
+
builder.instance_eval(&inline)
|
60
|
+
else
|
61
|
+
builder.eval_gemfile(gemfile)
|
62
|
+
end
|
63
|
+
definition = builder.to_definition(nil, true)
|
63
64
|
|
64
|
-
|
65
|
+
return if definition.dependencies.empty?
|
65
66
|
|
66
|
-
|
67
|
-
|
67
|
+
plugins = definition.dependencies.map(&:name).reject {|p| index.installed? p }
|
68
|
+
installed_specs = Installer.new.install_definition(definition)
|
68
69
|
|
69
|
-
|
70
|
+
save_plugins plugins, installed_specs, builder.inferred_plugins
|
71
|
+
end
|
70
72
|
rescue RuntimeError => e
|
71
73
|
unless e.is_a?(GemfileError)
|
72
74
|
Bundler.ui.error "Failed to install plugin: #{e.message}\n #{e.backtrace[0]}"
|