self.write_commit_details(commit, f) output_val = self.output_value(f) finally: f.close() self.log("Finished writing commit summary for {0}".format(commit)) return output_val def link(self, compilation_output, linking_options): '''Combine all the commit summaries into a single commit summary report.''' commits = compilation_output.keys() commits.sort(key=lambda c: c.committed_date) # TODO abstract this since this is something that would be commonly done. with open('commit_summary_report.txt', 'w') as report: for commit in commits: output = compilation_output[commit] if self.output_to_files: with open(output, 'r') as output_file: output = output_file.read() print >> report, "-------------------" print >> report, output print >> report, "-------------------" if __name__ == '__main__': from gcc.git_compiler import GitCompiler compiler = GitCompiler('.') compiler.add_commit_targets(rev='master') commit_summary = CommitSummary() compiler.set_compilation_task(CompilationTask(commit_summary)) compiler.set_linking_task(LinkingTask(commit_summary)) compiler.compile(link=True)