--- emerge.org 2003-08-17 20:58:30.000000000 +0100 +++ emerge 2003-08-21 02:46:35.000000000 +0100 @@ -52,6 +52,7 @@ "--quiet", "--resume", "--searchdesc", "--selective", "--skipfirst", +"--tree", "--update", "--upgradeonly", "--usepkg", "--usepkgonly", "--verbose", "--version" @@ -73,6 +74,7 @@ "p":"--pretend", "P":"--prune", "q":"--quiet", "s":"--search", "S":"--searchdesc", +'t':"--tree", "u":"--update", "U":"--upgradeonly", "v":"--verbose", "V":"--version" } @@ -152,6 +154,10 @@ print "emerge: please specify a package class (\"world\" or \"system\") or individual packages, but not both." sys.exit(1) +if ("--tree" in myopts) and ("--columns" in myopts): + print "emerge: can't specify both of \"--tree\" and \"--columns\"." + sys.exit(1) + # Always create packages if FEATURES=buildpkg # Imply --buildpkg if --buildpkgonly if ("buildpkg" in portage.features) or ("--buildpkgonly" in myopts): @@ -1000,6 +1006,9 @@ def display(self,mylist): changelogs=[] + p=[] + intree=False + for x in mylist: #print x fetch=" " @@ -1020,7 +1029,11 @@ print else: if x[3]=="nomerge": - continue + if ("--tree" in myopts): + if (not intree): + continue + else: + continue if ("fetch" in string.split(portage.portdb.aux_get(x[2],["RESTRICT"])[0])): fetch = red("F") @@ -1085,9 +1098,19 @@ oldlp=mywidth-30 newlp=oldlp-30 + mygraph = self.digraph.copy() + indent="" + if ("--tree" in myopts): + indent=" "*mygraph.depth(string.join(x)) + if indent=="": + intree=False + else: + intree=True + + if x[1]!="/": if "--columns" in myopts: - myprint="["+x[0]+" "+addl+"] "+darkgreen(xs[0]) + myprint="["+x[0]+" "+addl+"] "+indent+darkgreen(xs[0]) if (newlp-len(myprint)) > 0: myprint=myprint+(" "*(newlp-len(myprint))) myprint=myprint+"["+darkblue(xs[1]+xs[2])+"] " @@ -1099,7 +1122,7 @@ myprint="["+x[0]+" "+addl+"] "+darkgreen(x[2])+" "+myoldbest+" "+darkgreen("to "+x[1])+" "+iuse else: if "--columns" in myopts: - myprint="["+x[0]+" "+addl+"] "+darkgreen(xs[0]) + myprint="["+x[0]+" "+addl+"] "+indent+darkgreen(xs[0]) if (newlp-len(myprint)) > 0: myprint=myprint+(" "*(newlp-len(myprint))) myprint=myprint+green(" ["+xs[1]+xs[2]+"] ") @@ -1107,29 +1130,40 @@ myprint=myprint+(" "*(oldlp-len(myprint))) myprint=myprint+myoldbest+" "+iuse else: - myprint="["+x[0]+" "+addl+"] "+darkgreen(x[2])+" "+myoldbest+" "+iuse - print myprint + if x[3]=="nomerge": + myprint=darkblue("[nomerge ] "+indent+x[2]+" "+myoldbest+" ")+iuse + else: + myprint="["+x[0]+" "+addl+"] "+indent+darkgreen(x[2])+" "+myoldbest+" "+iuse + p.append(myprint) - mysplit=portage.pkgsplit(x[2]) - # XXX mysplit _can_ be None.... Why? - if mysplit and (len(mysplit)==3): - if "--emptytree" not in myopts: - if mysplit[0]=="sys-apps/portage": - if mysplit[1]+mysplit[2]!=portage.VERSION: - if mylist.index(x)