|
18 | 18 | use crate::config::OS::{LINUX, MACOS, WINDOWS}; |
19 | 19 | use crate::shell::run_shell_command_by_os; |
20 | 20 | use crate::{ |
21 | | - default_cache_folder, format_one_arg, path_to_string, Command, REQUEST_TIMEOUT_SEC, |
22 | | - UNAME_COMMAND, |
| 21 | + default_cache_folder, format_one_arg, path_to_string, Command, ENV_PROCESSOR_ARCHITECTURE, |
| 22 | + REQUEST_TIMEOUT_SEC, UNAME_COMMAND, |
23 | 23 | }; |
24 | 24 | use crate::{ARCH_AMD64, ARCH_ARM64, ARCH_X86, TTL_SEC, WMIC_COMMAND_OS}; |
25 | 25 | use anyhow::anyhow; |
@@ -69,11 +69,14 @@ impl ManagerConfig { |
69 | 69 |
|
70 | 70 | let self_os = OS; |
71 | 71 | let self_arch = if WINDOWS.is(self_os) { |
72 | | - let wmic_command = Command::new_single(WMIC_COMMAND_OS.to_string()); |
73 | | - let wmic_output = run_shell_command_by_os(self_os, wmic_command).unwrap_or_default(); |
74 | | - if wmic_output.contains("32") { |
| 72 | + let mut architecture = env::var(ENV_PROCESSOR_ARCHITECTURE).unwrap_or_default(); |
| 73 | + if architecture.is_empty() { |
| 74 | + let get_os_command = Command::new_single(WMIC_COMMAND_OS.to_string()); |
| 75 | + architecture = run_shell_command_by_os(self_os, get_os_command).unwrap_or_default(); |
| 76 | + } |
| 77 | + if architecture.contains("32") { |
75 | 78 | ARCH_X86.to_string() |
76 | | - } else if wmic_output.contains("ARM") { |
| 79 | + } else if architecture.contains("ARM") { |
77 | 80 | ARCH_ARM64.to_string() |
78 | 81 | } else { |
79 | 82 | ARCH_AMD64.to_string() |
|
0 commit comments