@@ -52,6 +52,13 @@ def calculate_version_and_tag(version: str):
5252 ('30.0', 'wasi-sdk-30')
5353 >>> calculate_version_and_tag('30.10')
5454 ('30.10', 'wasi-sdk-30.10')
55+ >>> latest = calculate_version_and_tag('latest')
56+ >>> float(latest[0]) > 0
57+ True
58+ >>> latest[1].startswith('wasi-sdk-')
59+ True
60+ >>> float(latest[1].removeprefix('wasi-sdk-')) > 0
61+ True
5562 """
5663 if version == 'latest' :
5764 tag = retrieve_latest_tag ()
@@ -74,14 +81,22 @@ def calculate_artifact_url(version: str, tag: str, arch: str, os_name: str):
7481 'https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-25/wasi-sdk-25.0-x86_64-linux.tar.gz'
7582 >>> calculate_artifact_url('25.1', 'wasi-sdk-25.1', 'arm64', 'Darwin')
7683 'https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-25.1/wasi-sdk-25.1-arm64-macos.tar.gz'
84+ >>> calculate_artifact_url('30.0', 'wasi-sdk-30', 'aarch64', 'Linux')
85+ 'https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-30/wasi-sdk-30.0-arm64-linux.tar.gz'
7786 """
7887 base = 'https://github.com/WebAssembly/wasi-sdk/releases/download'
79- if os_name == 'Darwin' :
80- os_name = 'macos'
81- else :
82- os_name = os_name .lower ()
83- if arch .lower () == 'amd64' :
84- arch = 'x86_64'
88+ match os_name .lower ():
89+ case 'darwin' :
90+ os_name = 'macos'
91+ case rest :
92+ os_name = rest
93+ match arch .lower ():
94+ case 'amd64' :
95+ arch = 'x86_64'
96+ case 'aarch64' :
97+ arch = 'arm64'
98+ case rest :
99+ arch = rest
85100 return f'{ base } /{ tag } /wasi-sdk-{ version } -{ arch } -{ os_name } .tar.gz'
86101
87102
@@ -205,7 +220,7 @@ def main(version: str, install_dir: str, add_to_path: bool):
205220 logging .getLogger ().name = os .path .basename (__file__ )
206221
207222 if args .test_only :
208- failures , _ = doctest .testmod ()
223+ failures , _ = doctest .testmod (verbose = args . verbose )
209224 if failures :
210225 sys .exit (1 )
211226 else :
0 commit comments