--- emerge.old 2002-12-24 21:14:01.000000000 +0100 +++ emerge 2002-12-28 20:39:27.000000000 +0100 @@ -286,7 +286,7 @@ catpack=portage.pkgsplit(match)[0] if full_package: try: - desc, homepage = portage.portdb.aux_get(full_package,["DESCRIPTION","HOMEPAGE"]) + desc, homepage, uses = portage.portdb.aux_get(full_package,["DESCRIPTION","HOMEPAGE","IUSE"]) except KeyError: print "emerge: search: aux_get() failed, skipping" continue @@ -295,6 +295,20 @@ else: print green("*")+" "+white(match) myversion = self.getVersion(full_package, search.VERSION_RELEASE) + + + # red: not specified in USE + # purple: specified not to be used (ie -kde) + # green: specified and used + + myuse = "" + for x in string.split(uses, " "): + if "-"+x in portage.settings["USE"].split(): + myuse = myuse + purple(x) + " " + elif not x in portage.settings["USE"].split(): + myuse = myuse + red(x) + " " + else: + myuse = myuse + green(x) + " " mysum = [0,0] mycat = match.split("/")[0] @@ -323,6 +337,7 @@ print " ", darkgreen("Size of downloaded files:"),mysum[0] print " ", darkgreen("Homepage: "),homepage print " ", darkgreen("Description:"),desc + print " ", darkgreen("Uses: "),myuse print # @@ -1537,6 +1552,34 @@ print "\b\b ...done!" if ("--pretend" in myopts) and not ("--fetchonly" in myopts): mydepgraph.display(mydepgraph.altlist()) + + + enabled = "" + disabled = "" + unset = "" + + for x in mydepgraph.altlist(): + if x[2]: + try: + uses = portage.portdb.aux_get(x[2],["IUSE"]) + except KeyError: + print "emerge: search: aux_get() failed, skipping" + continue + + for y in string.split(uses[0], " "): + if "-"+y in portage.settings["USE"].split() and string.find(disabled, y) < 0: + disabled = disabled + purple(y) + " " + elif not y in portage.settings["USE"].split() and string.find(unset, y) < 0: + unset = unset + red(y) + " " + elif string.find(enabled, y) < 0: + enabled = enabled + green(y) + " " + + print darkgreen("\n\nThe following USE flags for this action are:\n") + + print "[enabled]", enabled + print "[disabled]", disabled + print "[unset]", unset + else: mydepgraph.merge(mydepgraph.altlist()) if portage.settings["AUTOCLEAN"] and "yes"==portage.settings["AUTOCLEAN"]: