diff options
Diffstat (limited to 'lib/olddoc/changelog.rb')
-rw-r--r-- | lib/olddoc/changelog.rb | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/lib/olddoc/changelog.rb b/lib/olddoc/changelog.rb new file mode 100644 index 0000000..7a7fe96 --- /dev/null +++ b/lib/olddoc/changelog.rb @@ -0,0 +1,28 @@ +# helper method for generating the ChangeLog in RDoc format atomically +require 'tempfile' + +module Olddoc::Changelog + include Olddoc::History + + def changelog + fp = Tempfile.new('ChangeLog', '.') + fp.write "ChangeLog from #@cgit_uri" + cmd = %w(git log) + if @changelog_start && tags[0] + range = "#@changelog_start..#{tags[0][:tag]}" + fp.write(" (#{range})") + cmd << range + end + fp.write("\n\n") + prefix = " " + IO.popen(cmd.join(' ')) do |io| + io.each { |line| + fp.write prefix + fp.write line + } + end + fp.chmod(0666 & ~File.umask) + File.rename(fp.path, 'ChangeLog') + fp.close! + end +end |