vagrant plugin list works properly with isolated gem env
This commit is contained in:
parent
b482870173
commit
bfc8c62ffe
|
@ -20,23 +20,21 @@ module VagrantPlugins
|
||||||
# Get the list of installed plugins according to the state file
|
# Get the list of installed plugins according to the state file
|
||||||
installed = Set.new(env[:plugin_state_file].installed_plugins)
|
installed = Set.new(env[:plugin_state_file].installed_plugins)
|
||||||
|
|
||||||
# Get the actual specifications of installed gems
|
# Go through the plugins installed in this environment and
|
||||||
specs = env[:gem_helper].with_environment do
|
# get the latest version of each.
|
||||||
Gem::Specification.find_all
|
|
||||||
end
|
|
||||||
|
|
||||||
# Get the latest version of the installed plugins
|
|
||||||
installed_map = {}
|
installed_map = {}
|
||||||
specs.each do |spec|
|
env[:gem_helper].with_environment do
|
||||||
# Ignore specs that aren't in our installed list
|
Gem::Specification.find_all.each do |spec|
|
||||||
next if !installed.include?(spec.name)
|
# Ignore specs that aren't in our installed list
|
||||||
|
next if !installed.include?(spec.name)
|
||||||
|
|
||||||
# If we already have a newer version in our list of installed,
|
# If we already have a newer version in our list of installed,
|
||||||
# then ignore it
|
# then ignore it
|
||||||
next if installed_map.has_key?(spec.name) &&
|
next if installed_map.has_key?(spec.name) &&
|
||||||
installed_map[spec.name].version >= spec.version
|
installed_map[spec.name].version >= spec.version
|
||||||
|
|
||||||
installed_map[spec.name] = spec
|
installed_map[spec.name] = spec
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Output!
|
# Output!
|
||||||
|
|
Loading…
Reference in New Issue