X-Git-Url: https://git.rmz.io/dotfiles.git/blobdiff_plain/13c34ef8e1bbfedbda34ac8b7a8abb54e58b08ec..HEAD:/bin/graph.py diff --git a/bin/graph.py b/bin/graph.py index ccf997f..82dfd7c 100755 --- a/bin/graph.py +++ b/bin/graph.py @@ -4,59 +4,20 @@ from __future__ import print_function import os -#import sys -import collections -import argparse -import logging import re -from time import sleep -import pygraphviz as pgv -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) +pkglist = os.popen("LANGUAGE=C pacman -Qi").read().strip().split("\n\n") p = re.compile(r"[<>=].*") +e = open('edges.csv', 'w') +e.write("Source,Target\n") +n = open('nodes.csv', 'w') +n.write("Node,Repo\n") for pkg in pkglist: lines = pkg.splitlines() - repo = lines[0][17:] - name = lines[1][17:] + name = lines[0][17:] + n.write(name+"\n") depends = lines[8][17:].split() for dep in depends: if dep != "None": dep = p.sub("",dep) - G.add_edge(dep,name) - -max_d = 200 - print(succs) -all_n = set(G.nodes()) -n = set() -for pkg in pkgs: - 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') + e.write(name+","+dep+"\n")