]> git.lizzy.rs Git - rust.git/blob - util/versions.py
Rollup merge of #81260 - vn971:restore-editorconfig, r=Mark-Simulacrum
[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     if v == 'beta':
16         return sys.maxsize - 1
17
18     v = v.replace('v', '').replace('rust-', '')
19
20     s = 0
21     for i, val in enumerate(v.split('.')[::-1]):
22         s += int(val) * 100**i
23
24     return s
25
26
27 def main():
28     if len(sys.argv) < 2:
29         print("Error: specify output directory")
30         return
31
32     outdir = sys.argv[1]
33     versions = [
34         dir for dir in os.listdir(outdir) if not dir.startswith(".") and os.path.isdir(os.path.join(outdir, dir))
35     ]
36     versions.sort(key=key)
37
38     with open(os.path.join(outdir, "versions.json"), "w") as fp:
39         json.dump(versions, fp, indent=2)
40         log.info("wrote JSON for great justice")
41
42
43 if __name__ == "__main__":
44     main()