From adb5bf2005154f03b8f8b0492ce4cb538c448222 Mon Sep 17 00:00:00 2001 From: Nathen Harvey Date: Thu, 26 Jul 2012 23:05:27 -0400 Subject: Adding a CHANGELOG.md file when creating new cookbooks --- chef/lib/chef/knife/cookbook_create.rb | 23 ++++++++++++++++++----- chef/spec/unit/knife/cookbook_create_spec.rb | 20 ++++++++++++++++++++ 2 files changed, 38 insertions(+), 5 deletions(-) diff --git a/chef/lib/chef/knife/cookbook_create.rb b/chef/lib/chef/knife/cookbook_create.rb index c9abb26148..5e64cb6a94 100644 --- a/chef/lib/chef/knife/cookbook_create.rb +++ b/chef/lib/chef/knife/cookbook_create.rb @@ -75,6 +75,7 @@ class Chef readme_format = ((config[:readme_format] != "false") && config[:readme_format]) || "md" create_cookbook(cookbook_path,cookbook_name, copyright, license) create_readme(cookbook_path,cookbook_name,readme_format) + create_changelog(cookbook_path,cookbook_name) create_metadata(cookbook_path,cookbook_name, copyright, email, license,readme_format) end @@ -179,6 +180,18 @@ EOH end end + def create_changelog(dir, cookbook_name) + msg("** Creating CHANGELOG for cookbook: #{cookbook_name}") + unless File.exists?(File.join(dir,cookbook_name,'CHANGELOG.md')) + open(File.join(dir, cookbook_name, 'CHANGELOG.md'),'w') do |file| + file.puts <<-EOH +## v0.1.0: + +EOH + end + end + end + def create_readme(dir, cookbook_name,readme_format) msg("** Creating README for cookbook: #{cookbook_name}") unless File.exists?(File.join(dir, cookbook_name, "README.#{readme_format}")) @@ -248,12 +261,12 @@ EOH long_description = "long_description IO.read(File.join(File.dirname(__FILE__), 'README.#{readme_format}'))" end file.puts <<-EOH -maintainer "#{copyright}" -maintainer_email "#{email}" -license "#{license_name}" -description "Installs/Configures #{cookbook_name}" +maintainer '#{copyright}' +maintainer_email '#{email}' +license '#{license_name}' +description 'Installs/Configures #{cookbook_name}' #{long_description} -version "0.0.1" +version '0.0.1' EOH end end diff --git a/chef/spec/unit/knife/cookbook_create_spec.rb b/chef/spec/unit/knife/cookbook_create_spec.rb index 5ba3758321..dc1d7d7f79 100644 --- a/chef/spec/unit/knife/cookbook_create_spec.rb +++ b/chef/spec/unit/knife/cookbook_create_spec.rb @@ -37,6 +37,7 @@ describe Chef::Knife::CookbookCreate do @knife.config = {:cookbook_path => "~/tmp/monkeypants"} @knife.stub!(:create_cookbook) @knife.stub!(:create_readme) + @knife.stub!(:create_changelog) @knife.stub!(:create_metadata) @knife.run end @@ -46,6 +47,7 @@ describe Chef::Knife::CookbookCreate do @knife.config = {:cookbook_path => @dir} @knife.should_receive(:create_cookbook).with(@dir, @knife.name_args.first, "YOUR_COMPANY_NAME", "none") @knife.should_receive(:create_readme).with(@dir, @knife.name_args.first, "md") + @knife.should_receive(:create_changelog).with(@dir, @knife.name_args.first) @knife.should_receive(:create_metadata).with(@dir, @knife.name_args.first, "YOUR_COMPANY_NAME", "YOUR_EMAIL", "none", "md") @knife.run end @@ -59,6 +61,7 @@ describe Chef::Knife::CookbookCreate do @knife.name_args=["foobar"] @knife.should_receive(:create_cookbook).with(@dir, @knife.name_args.first, "Opscode, Inc", "none") @knife.should_receive(:create_readme).with(@dir, @knife.name_args.first, "md") + @knife.should_receive(:create_changelog).with(@dir, @knife.name_args.first) @knife.should_receive(:create_metadata).with(@dir, @knife.name_args.first, "Opscode, Inc", "YOUR_EMAIL", "none", "md") @knife.run end @@ -73,6 +76,7 @@ describe Chef::Knife::CookbookCreate do @knife.name_args=["foobar"] @knife.should_receive(:create_cookbook).with(@dir, @knife.name_args.first, "Opscode, Inc", "none") @knife.should_receive(:create_readme).with(@dir, @knife.name_args.first, "md") + @knife.should_receive(:create_changelog).with(@dir, @knife.name_args.first) @knife.should_receive(:create_metadata).with(@dir, @knife.name_args.first, "Opscode, Inc", "nuo@opscode.com", "none", "md") @knife.run end @@ -88,6 +92,7 @@ describe Chef::Knife::CookbookCreate do @knife.name_args=["foobar"] @knife.should_receive(:create_cookbook).with(@dir, @knife.name_args.first, "Opscode, Inc", "apachev2") @knife.should_receive(:create_readme).with(@dir, @knife.name_args.first, "md") + @knife.should_receive(:create_changelog).with(@dir, @knife.name_args.first) @knife.should_receive(:create_metadata).with(@dir, @knife.name_args.first, "Opscode, Inc", "nuo@opscode.com", "apachev2", "md") @knife.run end @@ -103,6 +108,7 @@ describe Chef::Knife::CookbookCreate do @knife.name_args=["foobar"] @knife.should_receive(:create_cookbook).with(@dir, @knife.name_args.first, "Opscode, Inc", "none") @knife.should_receive(:create_readme).with(@dir, @knife.name_args.first, "md") + @knife.should_receive(:create_changelog).with(@dir, @knife.name_args.first) @knife.should_receive(:create_metadata).with(@dir, @knife.name_args.first, "Opscode, Inc", "nuo@opscode.com", "none", "md") @knife.run end @@ -118,6 +124,7 @@ describe Chef::Knife::CookbookCreate do @knife.name_args=["foobar"] @knife.should_receive(:create_cookbook).with(@dir, @knife.name_args.first, "Opscode, Inc", "none") @knife.should_receive(:create_readme).with(@dir, @knife.name_args.first, "md") + @knife.should_receive(:create_changelog).with(@dir, @knife.name_args.first) @knife.should_receive(:create_metadata).with(@dir, @knife.name_args.first, "Opscode, Inc", "nuo@opscode.com", "none", "md") @knife.run end @@ -133,6 +140,7 @@ describe Chef::Knife::CookbookCreate do @knife.name_args=["foobar"] @knife.should_receive(:create_cookbook).with(@dir, @knife.name_args.first, "Opscode, Inc", "gplv2") @knife.should_receive(:create_readme).with(@dir, @knife.name_args.first, "md") + @knife.should_receive(:create_changelog).with(@dir, @knife.name_args.first) @knife.should_receive(:create_metadata).with(@dir, @knife.name_args.first, "Opscode, Inc", "nuo@opscode.com", "gplv2", "md") @knife.run end @@ -148,6 +156,7 @@ describe Chef::Knife::CookbookCreate do @knife.name_args=["foobar"] @knife.should_receive(:create_cookbook).with(@dir, @knife.name_args.first, "Opscode, Inc", "gplv3") @knife.should_receive(:create_readme).with(@dir, @knife.name_args.first, "md") + @knife.should_receive(:create_changelog).with(@dir, @knife.name_args.first) @knife.should_receive(:create_metadata).with(@dir, @knife.name_args.first, "Opscode, Inc", "nuo@opscode.com", "gplv3", "md") @knife.run end @@ -163,6 +172,7 @@ describe Chef::Knife::CookbookCreate do @knife.name_args=["foobar"] @knife.should_receive(:create_cookbook).with(@dir, @knife.name_args.first, "Opscode, Inc", "mit") @knife.should_receive(:create_readme).with(@dir, @knife.name_args.first, "md") + @knife.should_receive(:create_changelog).with(@dir, @knife.name_args.first) @knife.should_receive(:create_metadata).with(@dir, @knife.name_args.first, "Opscode, Inc", "nuo@opscode.com", "mit", "md") @knife.run end @@ -179,6 +189,7 @@ describe Chef::Knife::CookbookCreate do @knife.name_args=["foobar"] @knife.should_receive(:create_cookbook).with(@dir, @knife.name_args.first, "Opscode, Inc", "mit") @knife.should_receive(:create_readme).with(@dir, @knife.name_args.first, "rdoc") + @knife.should_receive(:create_changelog).with(@dir, @knife.name_args.first) @knife.should_receive(:create_metadata).with(@dir, @knife.name_args.first, "Opscode, Inc", "nuo@opscode.com", "mit", "rdoc") @knife.run end @@ -195,6 +206,7 @@ describe Chef::Knife::CookbookCreate do @knife.name_args=["foobar"] @knife.should_receive(:create_cookbook).with(@dir, @knife.name_args.first, "Opscode, Inc", "mit") @knife.should_receive(:create_readme).with(@dir, @knife.name_args.first, "mkd") + @knife.should_receive(:create_changelog).with(@dir, @knife.name_args.first) @knife.should_receive(:create_metadata).with(@dir, @knife.name_args.first, "Opscode, Inc", "nuo@opscode.com", "mit", "mkd") @knife.run end @@ -211,6 +223,7 @@ describe Chef::Knife::CookbookCreate do @knife.name_args=["foobar"] @knife.should_receive(:create_cookbook).with(@dir, @knife.name_args.first, "Opscode, Inc", "mit") @knife.should_receive(:create_readme).with(@dir, @knife.name_args.first, "txt") + @knife.should_receive(:create_changelog).with(@dir, @knife.name_args.first) @knife.should_receive(:create_metadata).with(@dir, @knife.name_args.first, "Opscode, Inc", "nuo@opscode.com", "mit", "txt") @knife.run end @@ -227,10 +240,17 @@ describe Chef::Knife::CookbookCreate do @knife.name_args=["foobar"] @knife.should_receive(:create_cookbook).with(@dir, @knife.name_args.first, "Opscode, Inc", "mit") @knife.should_receive(:create_readme).with(@dir, @knife.name_args.first, "foo") + @knife.should_receive(:create_changelog).with(@dir, @knife.name_args.first) @knife.should_receive(:create_metadata).with(@dir, @knife.name_args.first, "Opscode, Inc", "nuo@opscode.com", "mit", "foo") @knife.run end + it "should create a CHANGELOG file" do + @dir = Dir.tmpdir + @knife.should_receive(:create_changelog).with(@dir, @knife.name_args.first) + @knife.run + end + context "when the cookbooks path is not specified in the config file nor supplied via parameter" do before do @old_cookbook_path = Chef::Config[:cookbook_path] -- cgit v1.2.1