teamanalysis/bin/commit-counter

42 lines
1.2 KiB
Plaintext
Raw Normal View History

#!/usr/bin/env python
import argparse
import datetime
import jinja2
import os
import subprocess
import teamanalysis.git
import teamanalysis.repos
import teamanalysis.time
import webbrowser
def _get_commits(repo, start, end):
abspath = '/Users/eliribble/src/{}/'.format(repo)
os.chdir(abspath)
command = [
'git',
'log',
'--pretty=format:"%h %aI"',
'--after={}'.format(start.isoformat()),
'--before={}'.format(end.isoformat())]
output = subprocess.check_output(command)
return output
def _show_summary(timepoint):
start, end = teamanalysis.time.get_checkpoint(timepoint)
results = {}
for repo in teamanalysis.repos.REPOSITORIES:
output = _get_commits(repo, start, end)
lines = output.split('\n')
results[repo] = len(lines) if output else 0
#print("{0:<30}: {1}".format(repo, results[repo]))
print("{}\t{}\t{}".format(start.date().isoformat(), end.date().isoformat(), sum(results.values())))
def main():
timepoint = datetime.datetime(2014, 1, 1, 0, 0, 1)
while timepoint < datetime.datetime.utcnow():
_show_summary(timepoint)
timepoint = timepoint + datetime.timedelta(days=7)
if __name__ == '__main__':
main()