From 4d2a214caf3ff2c9745bb7c7d4c1ee5cc33cb58a Mon Sep 17 00:00:00 2001 From: Scott Schafer Date: Sun, 30 Mar 2025 10:10:33 -0600 Subject: [PATCH 1/2] feat: Get versions from a file --- versions.toml | 2 ++ x.py | 11 +++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 versions.toml diff --git a/versions.toml b/versions.toml new file mode 100644 index 0000000..8aeb930 --- /dev/null +++ b/versions.toml @@ -0,0 +1,2 @@ +rust = "1.91.1" +rustup = "1.28.2" diff --git a/x.py b/x.py index a450b7a..7ea6242 100755 --- a/x.py +++ b/x.py @@ -5,11 +5,18 @@ import os import subprocess import sys +import tomllib -rustup_version = "1.28.2" +def load_versions(): + with open("versions.toml", "rb") as f: + versions = tomllib.load(f) + rust_version = versions['rust'] + rustup_version = versions['rustup'] + return rust_version, rustup_version +rust_version, rustup_version = load_versions() Channel = namedtuple("Channel", ["name", "rust_version"]) -stable = Channel("stable", "1.91.1") +stable = Channel("stable", rust_version) nightly = Channel("nightly", "nightly") supported_channels = [ stable, From 2b8cabeb1173219d97dff189555dade8bd101117 Mon Sep 17 00:00:00 2001 From: Scott Schafer Date: Sun, 30 Mar 2025 12:29:47 -0600 Subject: [PATCH 2/2] feat: Allow setting the version via cli --- x.py | 40 +++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/x.py b/x.py index 7ea6242..31dd00e 100755 --- a/x.py +++ b/x.py @@ -1,10 +1,10 @@ #!/usr/bin/env python3 +import argparse from collections import namedtuple from urllib import request import os import subprocess -import sys import tomllib def load_versions(): @@ -14,6 +14,11 @@ def load_versions(): rustup_version = versions['rustup'] return rust_version, rustup_version +def write_versions(rust_version, rustup_version): + with open("versions.toml", "w") as f: + f.write(f'rust = "{rust_version}"\n') + f.write(f'rustup = "{rustup_version}"\n') + rust_version, rustup_version = load_versions() Channel = namedtuple("Channel", ["name", "rust_version"]) stable = Channel("stable", rust_version) @@ -373,22 +378,31 @@ def generate_stackbrew_library(): print(library) -def usage(): - print(f"Usage: {sys.argv[0]} update|generate-stackbrew-library") - sys.exit(1) - if __name__ == "__main__": - if len(sys.argv) != 2: - usage() + parser = argparse.ArgumentParser() + subparsers = parser.add_subparsers(dest='subcommand', required=True) + + update_parser = subparsers.add_parser('update') + update_parser.add_argument('--rust', metavar='VERSION', dest='rust', action='store') + update_parser.add_argument('--rustup', metavar='VERSION', dest='rustup', action='store') + + generate_stackbrew_library_parser = subparsers.add_parser('generate-stackbrew-library') + + args = parser.parse_args() + if args.subcommand == "update": + if args.rust: + rust_version = args.rust + stable = Channel("stable", rust_version) + write_versions(rust_version, rustup_version) + + if args.rustup: + rustup_version = args.rustup + write_versions(rust_version, rustup_version) - task = sys.argv[1] - if task == "update": update_debian() update_alpine() update_ci() update_mirror_stable_ci() - update_nightly_ci() - elif task == "generate-stackbrew-library": + update_nightly_ci() + elif args.subcommand == "generate-stackbrew-library": generate_stackbrew_library() - else: - usage()