11#!/usr/bin/env python3
22
3+ import argparse
34from collections import namedtuple
45from urllib import request
56import os
67import subprocess
7- import sys
88import tomllib
99
1010def 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+
1722rust_version , rustup_version = load_versions ()
1823Channel = namedtuple ("Channel" , ["name" , "rust_version" ])
1924stable = 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-
380381if __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