@@ -437,6 +437,25 @@ def get_latest_version_of_helm() -> Optional[str]:
437437 return None
438438
439439
440+ def query_arch_from_uname (arch : str ) -> Optional [str ]:
441+ if arch .startswith ("armv5" ):
442+ return "armv5"
443+ elif arch .startswith ("armv6" ):
444+ return "armv6"
445+ elif arch .startswith ("armv7" ):
446+ return "arm"
447+ elif arch == "aarch64" :
448+ return "arm64"
449+ elif arch == "x86" :
450+ return "386"
451+ elif arch == "x86_64" :
452+ return "amd64"
453+ elif arch == "i686" or arch == "i386" :
454+ return "386"
455+ else :
456+ return None
457+
458+
440459def write_blessed_checksum (helm_filename : str , dest_path : str ):
441460 checksum = next (
442461 (b ["checksum" ] for b in HELM_BLESSED_NAME_AND_CHECKSUMS if b ["name" ] == helm_filename ), None
@@ -488,21 +507,9 @@ def install_helm_rootlessly_to_venv():
488507 )
489508 sys .exit (1 )
490509
491- arch = os .uname ().machine
492- arch_map = {
493- "x86_64" : "amd64" , # Maps 'x86_64' to 'amd64'
494- "i686" : "i386" , # Maps 'i686' to 'i386'
495- "i386" : "i386" , # Maps 'i386' to 'i386'
496- "aarch64" : "arm64" , # Maps 'aarch64' (common on newer ARM) to 'arm64'
497- "armv7l" : "arm" , # Maps 'armv7l' to 'arm' (32-bit ARM)
498- "armv6l" : "arm" , # Maps 'armv6l' to 'arm' (32-bit ARM)
499- "ppc64le" : "ppc64le" , # PowerPC Little Endian
500- "s390x" : "s390x" , # IBM s390x architecture
501- "riscv64" : "riscv64" , # RISC-V 64-bit
502- }
503- if arch in arch_map :
504- arch = arch_map [arch ]
505- else :
510+ uname_arch = os .uname ().machine
511+ arch = query_arch_from_uname (uname_arch )
512+ if not arch :
506513 click .secho (f"No Helm binary candidate for arch: { arch } " , fg = "red" )
507514 sys .exit (1 )
508515
0 commit comments