lib/vagrant-mutate/mutate.rb in vagrant-mutate-0.3.2 vs lib/vagrant-mutate/mutate.rb in vagrant-mutate-1.0.0
- old
+ new
@@ -1,27 +1,30 @@
require 'vagrant-mutate/box_loader'
require 'vagrant-mutate/qemu'
require 'vagrant-mutate/converter/converter'
module VagrantMutate
-
class Mutate < Vagrant.plugin(2, :command)
-
def execute
options = {}
options[:input_provider] = nil
+ options[:version] = nil
opts = OptionParser.new do |o|
o.banner = 'Usage: vagrant mutate <box-name-or-file-or-url> <provider>'
- o.on("--input_provider PROVIDER",
- "Specify provider for input box") do |p|
+ o.on('--input-provider PROVIDER',
+ 'Specify provider for input box') do |p|
options[:input_provider] = p
end
+ o.on('--version VERSION',
+ 'Specify version for input box') do |p|
+ options[:version] = p
+ end
end
argv = parse_options(opts)
- return if !argv
+ return unless argv
unless argv.length == 2
@env.ui.info(opts.help)
return
end
@@ -31,22 +34,19 @@
Qemu.verify_qemu_installed
Qemu.verify_qemu_version(@env)
input_loader = BoxLoader.new(@env)
- input_box = input_loader.load( options[:box_arg], options[:input_provider] )
+ input_box = input_loader.load(options[:box_arg], options[:input_provider], options[:version])
output_loader = BoxLoader.new(@env)
- output_box = output_loader.prepare_for_output( input_box.name, options[:output_provider])
+ output_box = output_loader.prepare_for_output(input_box.name, options[:output_provider], input_box.version)
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