#!/usr/bin/python -O # # $Header: $ # Author: Eldad Zack # # earch: Gentoo last arch keyword checking tool # version 0.1.1 # # Usage: # # earch - works on current directory # earch category/pkgname - works on a package in PORTDIR # import sys import os import re import string #import readline from output import * sys.path.insert(0, "/usr/lib/portage/pym") import portage portdir = portage.settings["PORTDIR"] def getkeywords(pkg): file = open(pkg + ".ebuild") for line in file.readlines(): line = string.rstrip(line) if re.match("^KEYWORDS=",line): keywords = re.split("\"",line)[1] file.close return re.split(" ",keywords) def main(): archdict = {} ebuildlist = [] if len(sys.argv) <= 1: workdir = "." else: workdir = portdir + "/" + sys.argv[1] try: os.chdir(workdir) except: print red("!!!" + " Can't find " + workdir) return for file in os.listdir(workdir): if re.search("\.ebuild$",file): ebuildlist.append(re.split("\.ebuild$",file)[0]) ebuildlist.sort(lambda x,y: portage.pkgcmp(portage.pkgsplit(x),portage.pkgsplit(y))) for pkg in ebuildlist: for arch in getkeywords(pkg): archdict[arch] = pkg for pkg in ebuildlist: print white(pkg) + ": ", for value,key in archdict.iteritems(): if (key == pkg): if re.search("-",value): print red(value), elif re.search("~",value): print blue(value), else: print green(value), print "" main()