--- files/scripts/etcat 2003-08-15 13:23:44.000000000 +0100 +++ /usr/bin/etcat 2003-12-04 04:55:21.000000000 +0000 @@ -889,7 +889,71 @@ match_depend[x+"/"+dep] = match.groups() if match_depend.has_key(x+"/"+dep): - print turquoise("*"), white(x+"/"+dep) + + package = x+"/"+portage.pkgsplit(dep)[0] + state = [] + color = green + unstable = 0 + overlay = "" + tag = "-" + + # check if masked + if not portage.portdb.visible([x+"/"+dep]): + state.append(red("M")) + color = red + tag = "M" + else: + state.append(" ") + + # check if in unstable + try: + ver_keywords = portage.db["/"]["porttree"].dbapi.aux_get(x+"/"+dep,["KEYWORDS"]) + except KeyError: + ver_keywords = [""] + keywords_list = ver_keywords[0].split() + + if "~" + portage.settings["ARCH"] in keywords_list: + state.append(yellow("~")) + if color != red: + color = yellow + tag = "~" + unstable = 1 + else: + state.append(" ") + + # check if installed + if portage.dblink(x,dep,"/").exists(): + state.append(turquoise("I")) + color = turquoise + tag = "*" + else: + state.append(" ") + # check if another version is installed + latest_package = portage.db["/"]["vartree"].dep_bestmatch(package) + if len(latest_package) > 0: + # compare versions + if pkgcmp(x+"/"+dep, latest_package) < 0: + tag = "<" + else: + tag = ">" + + # check if this is an OVERLAY ebuild + try: + if portage.portdb.oroot: + if os.path.exists(portage.portdb.oroot + "/" + package + "/" + dep + ".ebuild"): + overlay = " OVERLAY" + except AttributeError: + pass + + # print + try: + slot = portage.db["/"]["porttree"].dbapi.aux_get(x+"/"+dep,["SLOT"]) + if not slot: + slot = ["0"] + except KeyError: + slot = ["?"] + + print color(tag) + " " + "[" + string.join(state,"") + "] " + color(x+"/"+dep) + " (" + color(slot[0]) + ")" + overlay for line in match_depend[x+"/"+dep]: print " " + line