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")