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

Methods included from Util::SafePuts

#safe_puts

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
35
36
37
# 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)

 # Success, exit status 0
 0
end