Sha256: e9a6f30f47054fdc0e6aeea1c9c75938136e6d457951c0e2f5423e15c7375657

Contents?: true

Size: 1.61 KB

Versions: 6

Compression:

Stored size: 1.61 KB

Contents

require 'optparse'

module VagrantPlugins
  module CommandBox
    module Command
      class Remove < Vagrant.plugin("2", :command)
        def execute
          opts = OptionParser.new do |o|
            o.banner = "Usage: vagrant box remove <name> <provider>"
          end

          # Parse the options
          argv = parse_options(opts)
          return if !argv
          raise Vagrant::Errors::CLIInvalidUsage, :help => opts.help.chomp if argv.length < 1

          if !argv[1]
            # Try to automatically determine the provider.
            providers = []
            @env.boxes.all.each do |name, provider|
              if name == argv[0]
                providers << provider
              end
            end

            if providers.length > 1
              @env.ui.error(
                I18n.t("vagrant.commands.box.remove_must_specify_provider",
                       name: argv[0],
                       providers: providers.join(", ")))
              return 1
            end

            argv[1] = providers[0] || ""
          end

          b = nil
          begin
            b = @env.boxes.find(argv[0], argv[1].to_sym)
          rescue Vagrant::Errors::BoxUpgradeRequired
            @env.boxes.upgrade(argv[0])
            retry
          end

          raise Vagrant::Errors::BoxNotFound, :name => argv[0], :provider => argv[1].to_sym if !b
          @env.ui.info(I18n.t("vagrant.commands.box.removing",
                              :name => argv[0],
                              :provider => argv[1]))
          b.destroy!

          # Success, exit status 0
          0
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
tamtam-vagrant-reload-1.1.3 vendor/cache/vagrant-0ac2a8738841/plugins/commands/box/command/remove.rb
tamtam-vagrant-reload-1.1.2 vendor/cache/vagrant-0ac2a8738841/plugins/commands/box/command/remove.rb
tamtam-vagrant-reload-1.1.1 vendor/cache/vagrant-0ac2a8738841/plugins/commands/box/command/remove.rb
tamtam-vagrant-reload-1.1 vendor/cache/vagrant-0ac2a8738841/plugins/commands/box/command/remove.rb
tnargav-1.3.6 plugins/commands/box/command/remove.rb
tnargav-1.3.3 plugins/commands/box/command/remove.rb