#!/usr/bin/env python # -*- coding: utf-8 -*- """Generates potential ChangeLog file contents from commit messages.""" # Copyright (c) 2010-2014 Jeremy Stanley . Permission # to use, copy, modify, and distribute this software is granted under # terms provided in the LICENSE file distributed with this software. import time import git copyright = """\ Copyright (c) 2004-2014 Jeremy Stanley . Permission to use, copy, modify, and distribute this software is granted under terms provided in the LICENSE file distributed with this software. """ emacsinfo = "\f" + """ Local Variables: mode: change-log coding: utf-8 left-margin: 8 fill-column: 76 version-control: never End:\ """ generated = "" for commit in git.Repo().log(): header = "%s %s <%s>" % ( time.strftime("%Y-%m-%d %H:%M:%S UTC", commit.authored_date), commit.author.name, commit.author.email ) comments = "" for line in commit.message.split("\n")[1:]: if line: line = "\t%s" % line if line.startswith("\t*"): line = "\n%s" % line comments += "%s\n" % line generated += "%s\n%s\n" % (header, comments) print("%s%s%s" % (generated, copyright, emacsinfo))