summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathen Harvey <nharvey@customink.com>2012-07-26 23:05:27 -0400
committerBryan McLellan <btm@opscode.com>2012-08-02 09:32:55 -0700
commitadb5bf2005154f03b8f8b0492ce4cb538c448222 (patch)
treebd343ca75334bac4ac8b488555e291e10e37833e
parentcb54b52d0f51c42399e3d28e514419a025b540ad (diff)
downloadchef-adb5bf2005154f03b8f8b0492ce4cb538c448222.tar.gz
Adding a CHANGELOG.md file when creating new cookbooks
-rw-r--r--chef/lib/chef/knife/cookbook_create.rb23
-rw-r--r--chef/spec/unit/knife/cookbook_create_spec.rb20
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]