|
1 | 1 | #!/usr/bin/env python3 |
2 | 2 |
|
| 3 | +import argparse |
3 | 4 | from collections import namedtuple |
4 | 5 | from urllib import request |
5 | 6 | import os |
6 | 7 | import subprocess |
7 | | -import sys |
| 8 | +import tomllib |
8 | 9 |
|
9 | | -rustup_version = "1.28.2" |
| 10 | +def load_versions(): |
| 11 | + with open("versions.toml", "rb") as f: |
| 12 | + versions = tomllib.load(f) |
| 13 | + rust_version = versions['rust'] |
| 14 | + rustup_version = versions['rustup'] |
| 15 | + return rust_version, rustup_version |
10 | 16 |
|
| 17 | +def write_versions(rust_version, rustup_version): |
| 18 | + with open("versions.toml", "w") as f: |
| 19 | + f.write(f'rust = "{rust_version}"\n') |
| 20 | + f.write(f'rustup = "{rustup_version}"\n') |
| 21 | + |
| 22 | +rust_version, rustup_version = load_versions() |
11 | 23 | Channel = namedtuple("Channel", ["name", "rust_version"]) |
12 | | -stable = Channel("stable", "1.91.1") |
| 24 | +stable = Channel("stable", rust_version) |
13 | 25 | nightly = Channel("nightly", "nightly") |
14 | 26 | supported_channels = [ |
15 | 27 | stable, |
@@ -366,22 +378,31 @@ def generate_stackbrew_library(): |
366 | 378 |
|
367 | 379 | print(library) |
368 | 380 |
|
369 | | -def usage(): |
370 | | - print(f"Usage: {sys.argv[0]} update|generate-stackbrew-library") |
371 | | - sys.exit(1) |
372 | | - |
373 | 381 | if __name__ == "__main__": |
374 | | - if len(sys.argv) != 2: |
375 | | - usage() |
| 382 | + parser = argparse.ArgumentParser() |
| 383 | + subparsers = parser.add_subparsers(dest='subcommand', required=True) |
| 384 | + |
| 385 | + update_parser = subparsers.add_parser('update') |
| 386 | + update_parser.add_argument('--rust', metavar='VERSION', dest='rust', action='store') |
| 387 | + update_parser.add_argument('--rustup', metavar='VERSION', dest='rustup', action='store') |
| 388 | + |
| 389 | + generate_stackbrew_library_parser = subparsers.add_parser('generate-stackbrew-library') |
| 390 | + |
| 391 | + args = parser.parse_args() |
| 392 | + if args.subcommand == "update": |
| 393 | + if args.rust: |
| 394 | + rust_version = args.rust |
| 395 | + stable = Channel("stable", rust_version) |
| 396 | + write_versions(rust_version, rustup_version) |
| 397 | + |
| 398 | + if args.rustup: |
| 399 | + rustup_version = args.rustup |
| 400 | + write_versions(rust_version, rustup_version) |
376 | 401 |
|
377 | | - task = sys.argv[1] |
378 | | - if task == "update": |
379 | 402 | update_debian() |
380 | 403 | update_alpine() |
381 | 404 | update_ci() |
382 | 405 | update_mirror_stable_ci() |
383 | | - update_nightly_ci() |
384 | | - elif task == "generate-stackbrew-library": |
| 406 | + update_nightly_ci() |
| 407 | + elif args.subcommand == "generate-stackbrew-library": |
385 | 408 | generate_stackbrew_library() |
386 | | - else: |
387 | | - usage() |
|
0 commit comments