]> git.lizzy.rs Git - rust.git/blob - util/versions.py
5798761ad75bd54f3393aacdee7b73da3593b09f
[rust.git] / util / versions.py
1 #!/usr/bin/env python
2
3 import json
4 import os
5 import sys
6
7 from lintlib import log
8
9
10 def key(v):
11     if v == 'master':
12         return float('inf')
13     if v == 'stable':
14         return sys.maxsize
15
16     v = v.replace('v', '').replace('rust-', '')
17
18     s = 0
19     for i, val in enumerate(v.split('.')[::-1]):
20         s += int(val) * 100**i
21
22     return s
23
24
25 def main():
26     if len(sys.argv) < 2:
27         print("Error: specify output directory")
28         return
29
30     outdir = sys.argv[1]
31     versions = [
32         dir for dir in os.listdir(outdir) if not dir.startswith(".") and os.path.isdir(os.path.join(outdir, dir))
33     ]
34     versions.sort(key=key)
35
36     with open(os.path.join(outdir, "versions.json"), "w") as fp:
37         json.dump(versions, fp, indent=2)
38         log.info("wrote JSON for great justice")
39
40
41 if __name__ == "__main__":
42     main()