|
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