Class: Vagrant::Command::Init

Inherits:
Base
  • Object
show all
Defined in:
lib/vagrant/command/init.rb

Instance Method Summary collapse

Methods inherited from Base

#initialize

Constructor Details

This class inherits a constructor from Vagrant::Command::Base

Instance Method Details

#executeObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/vagrant/command/init.rb', line 8

def execute
  options = {}

  opts = OptionParser.new do |opts|
    opts.banner = "Usage: vagrant init [box-name] [box-url]"
  end

  # Parse the options
  argv = parse_options(opts)
  return if !argv

  save_path = @env.cwd.join("Vagrantfile")
  raise Errors::VagrantfileExistsError if save_path.exist?

  template_path = ::Vagrant.source_root.join("templates/commands/init/Vagrantfile")
  contents = Vagrant::Util::TemplateRenderer.render(template_path,
                                                    :box_name => argv[0] || "base",
                                                    :box_url => argv[1])

  # Write out the contents
  save_path.open("w+") do |f|
    f.write(contents)
  end

  @env.ui.info(I18n.t("vagrant.commands.init.success"),
               :prefix => false)
end