def run(options)
if Bundler.settings[:frozen]
@definition.ensure_equivalent_gemfile_and_lockfile
end
if dependencies.empty?
Bundler.ui.warn "The Gemfile specifies no dependencies"
return
end
if Bundler.default_lockfile.exist? && !options["update"]
begin
tmpdef = Definition.build(Bundler.default_gemfile, Bundler.default_lockfile, nil)
local = true unless tmpdef.new_platform? || tmpdef.missing_specs.any?
rescue BundlerError
end
end
unless local
options["local"] ?
@definition.resolve_with_cache! :
@definition.resolve_remotely!
end
Bundler.mkdir_p(Bundler.bundle_path) unless File.exist?(Bundler.bundle_path)
specs.each do |spec|
spec.source.fetch(spec) if spec.source.respond_to?(:fetch)
begin
old_args = Gem::Command.build_args
Gem::Command.build_args = [Bundler.settings["build.#{spec.name}"]]
spec.source.install(spec)
Bundler.ui.debug "from #{spec.loaded_from} "
ensure
Gem::Command.build_args = old_args
end
Bundler.ui.info ""
generate_bundler_executable_stubs(spec) if Bundler.settings[:bin]
FileUtils.rm_rf(Bundler.tmp)
end
lock
end