Sha256: 785475fd34f18b9760bd724d25129efc53d642d4ecc8acc4ee95c8050e73c663

Contents?: true

Size: 1.04 KB

Versions: 5

Compression:

Stored size: 1.04 KB

Contents

require 'vagrant-mutate/box_loader'
require 'vagrant-mutate/qemu'
require 'vagrant-mutate/converter/converter'

module VagrantMutate

  class Mutate < Vagrant.plugin(2, :command)

    def execute
      opts = OptionParser.new do |o|
        o.banner = 'Usage: vagrant mutate <box-name-or-file> <provider>'
      end
      argv = parse_options(opts)
      return if !argv

      unless argv.length == 2
        @env.ui.info(opts.help)
        return
      end

      box_arg = argv[0]
      output_provider_arg = argv[1]

      Qemu.verify_qemu_installed
      Qemu.verify_qemu_version(@env)

      input_loader  = BoxLoader.new(@env)
      input_box = input_loader.load(box_arg)

      output_loader = BoxLoader.new(@env)
      output_box = output_loader.prepare_for_output( input_box.name, output_provider_arg)

      converter  = Converter::Converter.create(@env, input_box, output_box)
      converter.convert

      input_loader.cleanup

      @env.ui.info "The box #{output_box.name} (#{output_box.provider_name}) is now ready to use."

    end

  end

end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
vagrant-mutate-0.2.6 lib/vagrant-mutate/mutate.rb
vagrant-mutate-0.2.5 lib/vagrant-mutate/mutate.rb
vagrant-mutate-0.2.4 lib/vagrant-mutate/mutate.rb
vagrant-mutate-0.2.3 lib/vagrant-mutate/mutate.rb
vagrant-mutate-0.2.2 lib/vagrant-mutate/mutate.rb