* graph all available packages

This commit is contained in:
Eray Özkural
2005-11-03 23:16:53 +00:00
parent bc7514ee88
commit 5109c95f7f
+18 -1
View File
@@ -265,15 +265,32 @@ conflicts relations starting from given packages.
def __init__(self): def __init__(self):
super(Graph, self).__init__() super(Graph, self).__init__()
def options(self):
self.parser.add_option("-a", "--all", action="store_true",
default=False,
help=_("graph all available packages"))
name = ("graph", None) name = ("graph", None)
def all_packages(self):
a = set()
from pisi import packagedb
for repo in ctx.repodb.list():
pkg_db = packagedb.get_db(repo)
a = a.union(pkg_db.list_packages())
return a
def run(self): def run(self):
self.init() self.init()
if ctx.get_option('all'):
ctx.ui.info(_('Plotting a graph of relations among all available packages'))
a = self.all_packages()
else:
if self.args: if self.args:
a = self.args a = self.args
else: else:
# if A is empty, then graph all packages # if A is empty, then graph all packages
ctx.ui.info(_('Plotting a graph of relations among all packages')) ctx.ui.info(_('Plotting a graph of relations among all installed packages'))
a = ctx.installdb.list_installed() a = ctx.installdb.list_installed()
g = pisi.api.package_graph(a) g = pisi.api.package_graph(a)
g.write_graphviz(file('pgraph.dot', 'w')) g.write_graphviz(file('pgraph.dot', 'w'))