Sha256: 687eae32ea111ee621051c15f0a732a0658d68242ffb7887a319b0256d6f4a81

Contents?: true

Size: 1.56 KB

Versions: 9

Compression:

Stored size: 1.56 KB

Contents

# frozen_string_literal: true
module Bundler
  class CLI::Lock
    attr_reader :options

    def initialize(options)
      @options = options
    end

    def run
      unless Bundler.default_gemfile
        Bundler.ui.error "Unable to find a Gemfile to lock"
        exit 1
      end

      print = options[:print]
      ui = Bundler.ui
      Bundler.ui = UI::Silent.new if print

      gems = options[:update]
      Bundler::Fetcher.disable_endpoint = options["full-index"]

      if gems && !gems.empty?
        definition = Bundler.definition(:gems => gems)
      else
        definition = Bundler.definition(true)
      end

      options["remove-platform"].each do |platform|
        definition.remove_platform(platform)
      end

      options["add-platform"].each do |platform_string|
        platform = Gem::Platform.new(platform_string)
        if platform.to_a.compact == %w(unknown)
          Bundler.ui.warn "The platform `#{platform_string}` is unknown to RubyGems " \
            "and adding it will likely lead to resolution errors"
        end
        definition.add_platform(platform)
      end

      if definition.platforms.empty?
        raise InvalidOption, "Removing all platforms from the bundle is not allowed"
      end

      definition.resolve_remotely! unless options[:local]

      if print
        puts definition.to_lock
      else
        file = options[:lockfile]
        file = file ? File.expand_path(file) : Bundler.default_lockfile
        puts "Writing lockfile to #{file}"
        definition.lock(file)
      end

      Bundler.ui = ui
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
bundler-1.13.7 lib/bundler/cli/lock.rb
bundler-1.13.6 lib/bundler/cli/lock.rb
bundler-1.13.5 lib/bundler/cli/lock.rb
bundler-1.13.4 lib/bundler/cli/lock.rb
bundler-1.13.3 lib/bundler/cli/lock.rb
bundler-1.13.2 lib/bundler/cli/lock.rb
bundler-1.13.1 lib/bundler/cli/lock.rb
bundler-1.13.0 lib/bundler/cli/lock.rb
bundler-1.13.0.rc.2 lib/bundler/cli/lock.rb