Skip to content

Commit 2b8cabe

Browse files
committed
feat: Allow setting the version via cli
1 parent 4d2a214 commit 2b8cabe

File tree

1 file changed

+27
-13
lines changed

1 file changed

+27
-13
lines changed

x.py

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
#!/usr/bin/env python3
22

3+
import argparse
34
from collections import namedtuple
45
from urllib import request
56
import os
67
import subprocess
7-
import sys
88
import tomllib
99

1010
def load_versions():
@@ -14,6 +14,11 @@ def load_versions():
1414
rustup_version = versions['rustup']
1515
return rust_version, rustup_version
1616

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+
1722
rust_version, rustup_version = load_versions()
1823
Channel = namedtuple("Channel", ["name", "rust_version"])
1924
stable = Channel("stable", rust_version)
@@ -373,22 +378,31 @@ def generate_stackbrew_library():
373378

374379
print(library)
375380

376-
def usage():
377-
print(f"Usage: {sys.argv[0]} update|generate-stackbrew-library")
378-
sys.exit(1)
379-
380381
if __name__ == "__main__":
381-
if len(sys.argv) != 2:
382-
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)
383401

384-
task = sys.argv[1]
385-
if task == "update":
386402
update_debian()
387403
update_alpine()
388404
update_ci()
389405
update_mirror_stable_ci()
390-
update_nightly_ci()
391-
elif task == "generate-stackbrew-library":
406+
update_nightly_ci()
407+
elif args.subcommand == "generate-stackbrew-library":
392408
generate_stackbrew_library()
393-
else:
394-
usage()

0 commit comments

Comments
 (0)