]> git.rmz.io Git - dotfiles.git/blob - bin/graph.py
remove (year)(quality)[lang] when setting the title
[dotfiles.git] / bin / graph.py
1 #!/usr/bin/python2
2 # attempt to create a graph showing package dependencies
3 # in a nice graph
4
5 from __future__ import print_function
6 import os
7 #import sys
8 import collections
9 import argparse
10 import logging
11 import re
12 from time import sleep
13 import pygraphviz as pgv
14
15 pkgs = os.popen("""LANGUAGE=C pacman -Ssq "^libpng$" """).read().strip().split("\n")
16 print(pkgs)
17 pkglist = os.popen("LANGUAGE=C pacman -Si").read().strip().split("\n\n")
18 G = pgv.AGraph(directed=True)
19 p = re.compile(r"[<>=].*")
20 for pkg in pkglist:
21 lines = pkg.splitlines()
22 repo = lines[0][17:]
23 name = lines[1][17:]
24 depends = lines[8][17:].split()
25 for dep in depends:
26 if dep != "None":
27 dep = p.sub("",dep)
28 G.add_edge(dep,name)
29
30 all_n = set(G.nodes())
31 n = set(pkgs)
32 for pkg in pkgs:
33 n |= set(G.successors(pkg))
34 n |= set(G.predecessors(pkg))
35
36 G.remove_nodes_from(all_n - n)
37
38
39 G.write("graph.dot")
40 #G.draw("graph.svg",prog='dot')