aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/development/dotnet-modules/python-language-server/process_lockfile.py
blob: d67bdf048c8a19c2607fdd0b41001cce76625765 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/usr/bin/python

import json
import sys


def process_section(name, section):
    packages = set()

    if "resolved" in section:
        packages.add((name, section["resolved"]))

    if "dependencies" in section:
        for name in section["dependencies"]:
            packages.add((name, section["dependencies"][name]))

    return packages


def main():
    with open(sys.argv[1], 'r') as f:
        tree = json.loads(f.read())

    packages = set()

    topDependencies = tree["dependencies"]

    for area in topDependencies:
        for name in topDependencies[area]:
            packages = packages.union(process_section(name, topDependencies[area][name]))

    for (name, version) in packages:
        print("%s %s" % (name, version))


if __name__ == "__main__":
    main()