From 85f4a0479c4f1ecb8b589b18393ee00d164b026a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Sat, 4 Jul 2020 03:28:49 +0200 Subject: Add script for generating dependency graphs. --- use2dot/change_graph.py | 40 ++++++++++++++++++++++++++++++++++++++++ use2dot/gen_use_graph | 10 ++++++++++ 2 files changed, 50 insertions(+) create mode 100755 use2dot/change_graph.py create mode 100755 use2dot/gen_use_graph (limited to 'use2dot') diff --git a/use2dot/change_graph.py b/use2dot/change_graph.py new file mode 100755 index 00000000..50d1c34f --- /dev/null +++ b/use2dot/change_graph.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python3 + +import re +import colorsys +import hashlib +import sys + +def md5(str): + return hashlib.md5(str.encode("UTF-8")).hexdigest() + +def rgb(str): + return md5(str)[0:6] + +def main(args): + + if len(args) < 3: + print("Usage: ./change_graph.py ") + return + + [_, infile, outfile, *rest] = args + + with open(infile) as f: + lines = f.readlines() + # [3:-1] + + f = open(outfile, 'w') + + for line in lines: + m = re.search('^( *"\(([^)]*)\)" -> "(\([^)]*\))");', line) + if m: + f.write(f'{m.group(1)} [color="#{rgb(m.group(2))}"];\n') + else: + f.write(line) + # colorsys.hsv_to_rgb( + + +# "(server macro)" -> "(ice-9 regex)"; + +if __name__ == "__main__": + main(sys.argv) diff --git a/use2dot/gen_use_graph b/use2dot/gen_use_graph new file mode 100755 index 00000000..030d0c7d --- /dev/null +++ b/use2dot/gen_use_graph @@ -0,0 +1,10 @@ +#!/bin/bash + +dir=$(mktemp -d) +here=$(dirname $(realpath $0)) + +guild use2dot -m '(main)' -- `find module -name \*.scm` > $dir/use.dot +$here/change_graph.py $dir/use.dot $dir/use2.dot +grep -v '\(srfi\|ice-9\|(util)\)' $dir/use2.dot > $dir/use3.dot + +fdp $dir/use3.dot -Tpdf -o use.pdf -- cgit v1.2.3