]>
Commit | Line | Data |
---|---|---|
f20569fa XL |
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() |