def run(options)
create_bundle_path
if Bundler.settings[:frozen]
@definition.ensure_equivalent_gemfile_and_lockfile(options[:deployment])
end
if dependencies.empty?
Bundler.ui.warn "The Gemfile specifies no dependencies"
lock
return
end
if Bundler.default_lockfile.exist? && !options["update"]
local = Bundler.ui.silence do
begin
tmpdef = Definition.build(Bundler.default_gemfile, Bundler.default_lockfile, nil)
true unless tmpdef.new_platform? || tmpdef.missing_specs.any?
rescue BundlerError
end
end
end
unless local
options["local"] ? @definition.resolve_with_cache! : @definition.resolve_remotely!
end
force = options["force"]
jobs = [Bundler.settings[:jobs].to_i-1, 1].max
if jobs > 1 && can_install_in_parallel?
require 'bundler/installer/parallel_installer'
install_in_parallel jobs, options[:standalone], force
else
install_sequentially options[:standalone], force
end
lock unless Bundler.settings[:frozen]
generate_standalone(options[:standalone]) if options[:standalone]
end