#!/usr/bin/python from __future__ import division import subprocess import sys import time def format_interval(secs): if secs < 4*60*60: return '{:.0f} minutes'.format(secs / 60) if secs < 48*60*60: return '{:.0f} hours'.format(secs / 3600) return '{:.0f} days'.format(secs / 86400) if __name__ == '__main__': now = time.time() dates = [now] kid = subprocess.Popen('git log --pretty=raw'.split(), stdout=subprocess.PIPE) for line in kid.stdout: words = line.split() if words[:1] != ['author']: continue dates.append(int(words[-2])) dates.sort() stack=[] for i in range(1, len(dates)): diff = (dates[i] - dates[i-1], dates[i]) #print(diff) while stack and stack[-1] < diff: stack.pop() stack.append(diff) print('This repository is currently inactive for {}.'.format(format_interval(stack[-1][0]))) for gap, when in stack[::-1][1:]: print("{} UTC, {} ago, ended a gap in development of {}.".format( time.asctime(time.gmtime(when)), format_interval(now-when), format_interval(gap))) print("The repository began on {} and contains {} commits.".format( time.asctime(time.gmtime(dates[0])), len(dates)))