|
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