diff --git a/CHANGELOG.md b/CHANGELOG.md index fb9490ec7..84e69bf21 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ ## 0.5.2 (unreleased) - + - Added ability to specify box url in `init`, which populates the + Vagrantfile with the proper `config.vm.box_url`. ## 0.5.1 (July 31, 2010) diff --git a/lib/vagrant/commands/init.rb b/lib/vagrant/commands/init.rb index acfeb9ff2..e689e57e9 100644 --- a/lib/vagrant/commands/init.rb +++ b/lib/vagrant/commands/init.rb @@ -5,12 +5,7 @@ module Vagrant description "Initializes current folder for Vagrant usage" def execute(args) - if args.empty? - create_vagrantfile - else - create_vagrantfile(:default_box => args[0] , :default_box_url => args[1]) - end - + create_vagrantfile(:default_box => args[0] , :default_box_url => args[1]) end def options_spec(opts) @@ -30,10 +25,10 @@ module Vagrant error_and_exit(:rootfile_already_exists) if File.exist?(rootfile_path) # Write the rootfile - default_opts = { :default_box => "base", :default_box_url => nil}.merge(opts) + opts = { :default_box => "base", :default_box_url => nil}.merge(opts) File.open(rootfile_path, 'w+') do |f| - f.write(TemplateRenderer.render(Environment::ROOTFILE_NAME, :default_box => default_opts[:default_box], :default_box_url => default_opts[:default_box_url])) + f.write(TemplateRenderer.render(Environment::ROOTFILE_NAME, opts)) end end end diff --git a/test/vagrant/commands/init_test.rb b/test/vagrant/commands/init_test.rb index b04a65233..b972b114b 100644 --- a/test/vagrant/commands/init_test.rb +++ b/test/vagrant/commands/init_test.rb @@ -11,9 +11,9 @@ class CommandsInitTest < Test::Unit::TestCase context "execute" do should "create a vagrant file without any args" do args = [] - @instance.expects(:create_vagrantfile).with(nil) + @instance.expects(:create_vagrantfile).with(:default_box => nil, :default_box_url => nil) @instance.execute(args) - end + end context "when any arg is provided" do should "create the vagrant file using the first arg as default_box and the second as default_box_url" do args = [] @@ -23,7 +23,7 @@ class CommandsInitTest < Test::Unit::TestCase @instance.expects(:create_vagrantfile).with(:default_box => "foo", :default_box_url => "foo.box") @instance.execute(args) end - end + end end context "creating the vagrantfile" do @@ -58,10 +58,10 @@ class CommandsInitTest < Test::Unit::TestCase end should "use the box_url if given" do - box_url = "fubar.box" + box_url = "fubar.box" Vagrant::Util::TemplateRenderer.expects(:render).with(Vagrant::Environment::ROOTFILE_NAME, :default_box => "base", :default_box_url => "fubar.box") @instance.create_vagrantfile :default_box_url => box_url - end + end should "use the default `base` if no box is given" do Vagrant::Util::TemplateRenderer.expects(:render).with(Vagrant::Environment::ROOTFILE_NAME, :default_box => "base", :default_box_url => nil)