Skip to content
Snippets Groups Projects
runtime-dep.py 935 B
Newer Older
#!/usr/bin/env python3

# To run this script, you need to install the 'toml' python package and install the 'graphviz' package:
# pip install toml
# sudo apt-get install graphviz
# the first parameter is the runtime folder
# python ./.maintain/runtime-dep.py ./substrate/runtime | dot -Tpng -o output.png
import sys
import os
import toml

if len(sys.argv) != 2:
    print("needs the runtime folder.")
    sys.exit(-1)

runtime_dir = sys.argv[1]

files = [os.path.join(runtime_dir, f, 'Cargo.toml') for f in os.listdir(runtime_dir) if os.path.isfile(os.path.join(runtime_dir, f, 'Cargo.toml')) and f != 'example']

print("digraph G {")


PREFIX = "substrate-runtime-"

for f in files:
    manifest = toml.load(f)

    package_name = manifest['package']['name']
    deps = [d for d in manifest['dependencies'].keys() if d.startswith(PREFIX)]

    for d in deps:
        print("    \"{}\" -> \"{}\";".format(package_name, d))

print("}")