| 
18 | 18 | use crate::config::OS::{LINUX, MACOS, WINDOWS};  | 
19 | 19 | use crate::shell::{run_powershell_command, 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_CPU_ARCHITECTURE,  | 
 | 22 | +    REQUEST_TIMEOUT_SEC, UNAME_COMMAND,  | 
23 | 23 | };  | 
24 | 24 | use crate::{ARCH_AMD64, ARCH_ARM64, ARCH_X86, PS_GET_OS_COMMAND, TTL_SEC};  | 
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 get_os_command = Command::new_single(PS_GET_OS_COMMAND.to_string());  | 
73 |  | -            let output = run_powershell_command(get_os_command).unwrap_or_default();  | 
74 |  | -            if output.contains("32") {  | 
 | 72 | +            let mut cpu_arch = env::var(ENV_CPU_ARCHITECTURE).unwrap_or_default();  | 
 | 73 | +            if cpu_arch.is_empty() {  | 
 | 74 | +                let get_os_command = Command::new_single(PS_GET_OS_COMMAND.to_string());  | 
 | 75 | +                cpu_arch = run_powershell_command(get_os_command).unwrap_or_default();  | 
 | 76 | +            }  | 
 | 77 | +            if cpu_arch.contains("32") {  | 
75 | 78 |                 ARCH_X86.to_string()  | 
76 |  | -            } else if output.contains("ARM") {  | 
 | 79 | +            } else if cpu_arch.contains("ARM") {  | 
77 | 80 |                 ARCH_ARM64.to_string()  | 
78 | 81 |             } else {  | 
79 | 82 |                 ARCH_AMD64.to_string()  | 
 | 
0 commit comments