#!/usr/bin/env python

uri_pattern = r'github\.com/'

import sys
import re

import portage
from portage.dep import paren_reduce, use_reduce

def main():
	uri_pattern_re = re.compile(uri_pattern)
	portdb = portage.portdb
	# exclude overlays
	portdb.porttrees = [portdb.porttree_root]
	cp_list = portdb.cp_list
	aux_get = portdb.aux_get
	db_keys = ['SRC_URI']
	out = sys.stdout
	for cp in portdb.cp_all():
		for cpv in cp_list(cp):
			fetch_map = portdb.getFetchMap(cpv)
			for uris in fetch_map.values():
				for uri in uris:
					if uri_pattern_re.search(uri) is not None:
						out.write("%s\t%s\n" % (cpv, uri))
						out.flush()

if __name__ == '__main__':
	main()
