better changelog task
This commit is contained in:
+8
-3
@@ -38,7 +38,10 @@ def latest_release
|
|||||||
end
|
end
|
||||||
|
|
||||||
def newer_release
|
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
|
end
|
||||||
|
|
||||||
desc "Generate a Changelog"
|
desc "Generate a Changelog"
|
||||||
@@ -48,12 +51,14 @@ task :changelog do
|
|||||||
commit, date_raw = entry.split(" ", 2)
|
commit, date_raw = entry.split(" ", 2)
|
||||||
date = Time.parse(date_raw).strftime("%Y-%m-%d")
|
date = Time.parse(date_raw).strftime("%Y-%m-%d")
|
||||||
|
|
||||||
message = "## #{release[1..-1]} #{date} #{commit}\n"
|
message = "## #{release[1..-1]} #{date} #{commit}\n\n"
|
||||||
message += %x{ git log --format="%s [%an]" #{latest_release}..#{release} }
|
message += %x{ git log --format="* %s [%an]" #{latest_release}..#{release} }
|
||||||
|
|
||||||
changelog = File.read("Changelog.md")
|
changelog = File.read("Changelog.md")
|
||||||
changelog = message + "\n" + changelog
|
changelog = message + "\n" + changelog
|
||||||
|
|
||||||
|
puts release
|
||||||
|
|
||||||
File.open("Changelog.md", "w") do |file|
|
File.open("Changelog.md", "w") do |file|
|
||||||
file.puts changelog
|
file.puts changelog
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user