Skip to content

Commit 48640b6

Browse files
authored
Merge pull request #258 from Muscraft/cli-improvements
feat: Allow setting the version via cli
2 parents 84bb43a + 2b8cabe commit 48640b6

File tree

2 files changed

+38
-15
lines changed

2 files changed

+38
-15
lines changed

versions.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
rust = "1.91.1"
2+
rustup = "1.28.2"

x.py

Lines changed: 36 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,27 @@
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
8+
import tomllib
89

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
1016

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()
1123
Channel = namedtuple("Channel", ["name", "rust_version"])
12-
stable = Channel("stable", "1.91.1")
24+
stable = Channel("stable", rust_version)
1325
nightly = Channel("nightly", "nightly")
1426
supported_channels = [
1527
stable,
@@ -366,22 +378,31 @@ def generate_stackbrew_library():
366378

367379
print(library)
368380

369-
def usage():
370-
print(f"Usage: {sys.argv[0]} update|generate-stackbrew-library")
371-
sys.exit(1)
372-
373381
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)
376401

377-
task = sys.argv[1]
378-
if task == "update":
379402
update_debian()
380403
update_alpine()
381404
update_ci()
382405
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":
385408
generate_stackbrew_library()
386-
else:
387-
usage()

0 commit comments

Comments
 (0)