]> git.rmz.io Git - dotfiles.git/blob - bin/graph.py
lazyvim: absorb snacks notifier
[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 re
8
9 pkglist = os.popen("LANGUAGE=C pacman -Qi").read().strip().split("\n\n")
10 p = re.compile(r"[<>=].*")
11 e = open('edges.csv', 'w')
12 e.write("Source,Target\n")
13 n = open('nodes.csv', 'w')
14 n.write("Node,Repo\n")
15 for pkg in pkglist:
16 lines = pkg.splitlines()
17 name = lines[0][17:]
18 n.write(name+"\n")
19 depends = lines[8][17:].split()
20 for dep in depends:
21 if dep != "None":
22 dep = p.sub("",dep)
23 e.write(name+","+dep+"\n")