#!/usr/bin/env python
from __future__ import print_function
import os
import portage

portdb = portage.portdb
portdb.porttrees = [portdb.porttree_root]

global_use = set()
use_desc = portage.grabfile(os.path.join(
	portdb.porttree_root, 'profiles', 'use.desc'))
for x in use_desc:
	x = x.split()
	if x:
		global_use.add(x[0])

iuse_counters = {}

for flag in global_use:
	iuse_counters[flag] = 0

keys = ["IUSE"]
for cp in portdb.cp_all():
	cp_flags = set()
	for cpv in portdb.cp_list(cp):
		iuse, = portdb.aux_get(cpv, keys)
		for flag in iuse.split():
			flag = flag.lstrip("+-")
			if flag not in global_use:
				continue
			if flag in cp_flags:
				continue
			cp_flags.add(flag)
			counter = iuse_counters.get(flag, 0)
			counter += 1
			iuse_counters[flag] = counter

for flag in sorted(iuse_counters):
	print("%s\t%s" % (flag, iuse_counters[flag]))
