|
16 | 16 | // under the License. |
17 | 17 |
|
18 | 18 | use crate::chrome::{ChromeManager, CHROMEDRIVER_NAME, CHROME_NAME}; |
| 19 | +use crate::config::ARCH::{ARM64, ARMV7, X32, X64}; |
19 | 20 | use crate::config::OS::{MACOS, WINDOWS}; |
20 | 21 | use crate::config::{str_to_os, ManagerConfig}; |
21 | 22 | use crate::downloads::download_to_tmp_folder; |
@@ -98,8 +99,10 @@ pub const ENV_LOCALAPPDATA: &str = "LOCALAPPDATA"; |
98 | 99 | pub const ENV_PROCESSOR_ARCHITECTURE: &str = "PROCESSOR_ARCHITECTURE"; |
99 | 100 | pub const ENV_X86: &str = " (x86)"; |
100 | 101 | pub const ARCH_X86: &str = "x86"; |
101 | | -pub const ARCH_AMD64: &str = "amd64"; |
| 102 | +pub const ARCH_X64: &str = "x86_64"; |
102 | 103 | pub const ARCH_ARM64: &str = "arm64"; |
| 104 | +pub const ARCH_ARM7L: &str = "arm7l"; |
| 105 | +pub const ARCH_OTHER: &str = "other"; |
103 | 106 | pub const TTL_SEC: u64 = 3600; |
104 | 107 | pub const UNAME_COMMAND: &str = "uname -{}"; |
105 | 108 | pub const ESCAPE_COMMAND: &str = r#"printf %q "{}""#; |
@@ -897,7 +900,10 @@ pub trait SeleniumManager { |
897 | 900 | browser: self.get_browser_name().to_ascii_lowercase(), |
898 | 901 | browser_version: self.get_browser_version().to_ascii_lowercase(), |
899 | 902 | os: self.get_os().to_ascii_lowercase(), |
900 | | - arch: self.get_arch().to_ascii_lowercase(), |
| 903 | + arch: self |
| 904 | + .get_normalized_arch() |
| 905 | + .unwrap_or(ARCH_OTHER) |
| 906 | + .to_ascii_lowercase(), |
901 | 907 | lang: self.get_language_binding().to_ascii_lowercase(), |
902 | 908 | selenium_version: self.get_selenium_version().to_ascii_lowercase(), |
903 | 909 | }; |
@@ -1291,6 +1297,23 @@ pub trait SeleniumManager { |
1291 | 1297 | self.get_config().arch.as_str() |
1292 | 1298 | } |
1293 | 1299 |
|
| 1300 | + fn get_normalized_arch(&self) -> Result<&str, Error> { |
| 1301 | + let arch = self.get_arch(); |
| 1302 | + if X32.is(arch) { |
| 1303 | + Ok(ARCH_X86) |
| 1304 | + } else if X64.is(arch) { |
| 1305 | + Ok(ARCH_X64) |
| 1306 | + } else if ARM64.is(arch) { |
| 1307 | + Ok(ARCH_ARM64) |
| 1308 | + } else if ARMV7.is(arch) { |
| 1309 | + Ok(ARCH_ARM7L) |
| 1310 | + } else { |
| 1311 | + let err_msg = format!("Unsupported architecture: {}", arch); |
| 1312 | + self.get_logger().warn(err_msg.clone()); |
| 1313 | + Err(anyhow!(err_msg)) |
| 1314 | + } |
| 1315 | + } |
| 1316 | + |
1294 | 1317 | fn set_arch(&mut self, arch: String) { |
1295 | 1318 | if !arch.is_empty() { |
1296 | 1319 | self.get_config_mut().arch = arch; |
|
0 commit comments