better changelog task

This commit is contained in:
David Dollar
2012-01-29 01:26:14 -05:00
parent 8c3ef1a7af
commit ebb191adba

View File

@@ -38,7 +38,10 @@ def latest_release
end
def newer_release
release = %x{ git tag --contains #{latest_release} }.split("\n")[1]
tags = %x{ git tag --contains #{latest_release} }.split("\n").sort_by do |tag|
Gem::Version.new(tag[1..-1])
end
tags.reject { |tag| Gem::Version.new(tag[1..-1]).prerelease? }[1]
end
desc "Generate a Changelog"
@@ -48,12 +51,14 @@ task :changelog do
commit, date_raw = entry.split(" ", 2)
date = Time.parse(date_raw).strftime("%Y-%m-%d")
message = "## #{release[1..-1]} #{date} #{commit}\n"
message += %x{ git log --format="%s [%an]" #{latest_release}..#{release} }
message = "## #{release[1..-1]} #{date} #{commit}\n\n"
message += %x{ git log --format="* %s [%an]" #{latest_release}..#{release} }
changelog = File.read("Changelog.md")
changelog = message + "\n" + changelog
puts release
File.open("Changelog.md", "w") do |file|
file.puts changelog
end