X-Git-Url: https://git.rmz.io/dotfiles.git/blobdiff_plain/c0a505168c231d28a2d2b1be23aabb13f4df942e..c01682be6bb15f322b16ec8ec6bb1e3889cb0f8f:/bin/graph.py diff --git a/bin/graph.py b/bin/graph.py index 4521a5c..ccf997f 100755 --- a/bin/graph.py +++ b/bin/graph.py @@ -12,7 +12,7 @@ import re from time import sleep import pygraphviz as pgv -pkgs = os.popen("""LANGUAGE=C pacman -Ssq "^libpng$" """).read().strip().split("\n") +pkgs = os.popen("""LANGUAGE=C pacman -Ssq "^x264" """).read().strip().split("\n") print(pkgs) pkglist = os.popen("LANGUAGE=C pacman -Si").read().strip().split("\n\n") G = pgv.AGraph(directed=True) @@ -27,14 +27,36 @@ for pkg in pkglist: dep = p.sub("",dep) G.add_edge(dep,name) +max_d = 200 + print(succs) all_n = set(G.nodes()) -n = set(pkgs) +n = set() for pkg in pkgs: - n |= set(G.successors(pkg)) - n |= set(G.predecessors(pkg)) + n.add(pkg) + succs = set(G.successors(pkg)) + cnt = 0; + while (cnt < max_d and len(succs) > 0): + cnt += 1 + p = succs.pop() + try: + n.add(p) + succs |= set(G.successors(p)) + except KeyError: + pass + + preds = set(G.predecessors(pkg)) + cnt = 0; + while (cnt < max_d and len(preds) > 0): + cnt += 1 + p = preds.pop() + try: + n.add(p) + preds |= set(G.predecessors(p)) + except KeyError: + pass G.remove_nodes_from(all_n - n) G.write("graph.dot") -#G.draw("graph.svg",prog='dot') +G.draw("graph.svg",prog='dot')