summaryrefslogtreecommitdiffstats
path: root/src/tools/clippy/util/versions.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:02:58 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:02:58 +0000
commit698f8c2f01ea549d77d7dc3338a12e04c11057b9 (patch)
tree173a775858bd501c378080a10dca74132f05bc50 /src/tools/clippy/util/versions.py
parentInitial commit. (diff)
downloadrustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.tar.xz
rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.zip
Adding upstream version 1.64.0+dfsg1.upstream/1.64.0+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rwxr-xr-xsrc/tools/clippy/util/versions.py44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/tools/clippy/util/versions.py b/src/tools/clippy/util/versions.py
new file mode 100755
index 000000000..0cfa007d1
--- /dev/null
+++ b/src/tools/clippy/util/versions.py
@@ -0,0 +1,44 @@
+#!/usr/bin/env python
+
+import json
+import os
+import sys
+import logging as log
+log.basicConfig(level=log.INFO, format='%(levelname)s: %(message)s')
+
+
+def key(v):
+ if v == 'master':
+ return float('inf')
+ if v == 'stable':
+ return sys.maxsize
+ if v == 'beta':
+ return sys.maxsize - 1
+
+ v = v.replace('v', '').replace('rust-', '')
+
+ s = 0
+ for i, val in enumerate(v.split('.')[::-1]):
+ s += int(val) * 100**i
+
+ return s
+
+
+def main():
+ if len(sys.argv) < 2:
+ log.error("specify output directory")
+ return
+
+ outdir = sys.argv[1]
+ versions = [
+ dir for dir in os.listdir(outdir) if not dir.startswith(".") and os.path.isdir(os.path.join(outdir, dir))
+ ]
+ versions.sort(key=key)
+
+ with open(os.path.join(outdir, "versions.json"), "w") as fp:
+ json.dump(versions, fp, indent=2)
+ log.info("wrote JSON for great justice")
+
+
+if __name__ == "__main__":
+ main()