diff options
| -rwxr-xr-x | BuildTools/Copyright/find-contribs.py | 57 | 
1 files changed, 57 insertions, 0 deletions
| diff --git a/BuildTools/Copyright/find-contribs.py b/BuildTools/Copyright/find-contribs.py new file mode 100755 index 0000000..63c454e --- /dev/null +++ b/BuildTools/Copyright/find-contribs.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python + +import subprocess + +def print_log(full_log): +	full_log_lines = full_log.split("\n") + +	commits = [] + +	commit_bit = "commit " +	author_bit = "Author: " +	date_bit = "Date: " + +	commit = None +	for line in full_log_lines: + +		if line[0:len(commit_bit)] == commit_bit: +			if commit: +				commits.append(commit) +			commit = {'text':''} +		handled = False +		for bit in [commit_bit, author_bit, date_bit]: +			if line[0:len(bit)] == bit: +				commit[bit] = line +				handled = True +		if not handled: +			commit['text'] += line + +	commits.append(commit) + +	contributions = [] + +	for commit in commits: +		if not "git@kismith.co.uk" in commit[author_bit] and not "git@el-tramo.be" in commit[author_bit]: +			contributions.append(commit) + +	#print contributions +	contributors = {} +	for commit in contributions: +		if not commit[author_bit] in contributors: +			contributors[commit[author_bit]] = [] +		contributors[commit[author_bit]].append(commit[commit_bit]) + +	for contributor in contributors: +		print contributor + " has contributed patches " + ", ".join([commit[len(commit_bit):] for commit in contributors[contributor]]) + +full_swiften_log = subprocess.check_output(["git", "log", "--", "Swiften"]) + +print "Contributors for Swiften/ subtree:\n" +print_log(full_swiften_log) + +full_all_log = subprocess.check_output(["git", "log"]) + +print "\n\n\n\n" + +print "Contributors for full tree:\n" +print_log(full_all_log) | 
 Swift
 Swift