A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/seleniumhq/selenium/commit/ec3ed70517c14a1c51d1470c0ad69ce358345c78 below:

[rust] Build selenium-manager for win32 (compatible when executed in … · SeleniumHQ/selenium@ec3ed70 · GitHub

File tree Expand file treeCollapse file tree 7 files changed

+93

-48

lines changed

Filter options

Expand file treeCollapse file tree 7 files changed

+93

-48

lines changed Original file line number Diff line number Diff line change

@@ -3,8 +3,8 @@ name: build-selenium-manager

3 3

on: workflow_dispatch

4 4 5 5

jobs:

6 -

windows:

7 -

name: "[Windows] Build selenium-manager"

6 +

win32:

7 +

name: "[Windows x32] Build selenium-manager"

8 8

runs-on: windows-latest

9 9

env:

10 10

RUSTFLAGS: '-Ctarget-feature=+crt-static'

@@ -14,20 +14,22 @@ jobs:

14 14

- name: "Update Rust"

15 15

run: |

16 16

rustup update

17 +

rustup toolchain install stable-i686-pc-windows-msvc

18 +

rustup default stable-i686-pc-windows-msvc

17 19

rustc -vV

18 20

- name: "Build release"

19 21

run: |

20 22

cd rust

21 -

cargo build --release --target x86_64-pc-windows-msvc

23 +

cargo build --release

22 24

- name: "Upload binary"

23 25

uses: actions/upload-artifact@v3

24 26

with:

25 -

name: selenium-manager_windows-x64

26 -

path: rust/target/x86_64-pc-windows-msvc/release/selenium-manager.exe

27 +

name: selenium-manager_windows-x32

28 +

path: rust/target/release/selenium-manager.exe

27 29

retention-days: 6

28 30 29 -

linux:

30 -

name: "[Linux] Build selenium-manager"

31 +

linux64:

32 +

name: "[Linux x64] Build selenium-manager"

31 33

runs-on: ubuntu-latest

32 34

env:

33 35

RUSTFLAGS: '-Ctarget-feature=-crt-static'

@@ -58,8 +60,8 @@ jobs:

58 60

path: selenium-manager.tar

59 61

retention-days: 6

60 62 61 -

macos:

62 -

name: "[macOS] Build selenium-manager"

63 +

macos64:

64 +

name: "[macOS x64] Build selenium-manager"

63 65

runs-on: macos-latest

64 66

env:

65 67

RUSTFLAGS: '-Ctarget-feature=+crt-static'

@@ -83,4 +85,4 @@ jobs:

83 85

with:

84 86

name: selenium-manager_macos-x64

85 87

path: selenium-manager.tar

86 -

retention-days: 6

88 +

retention-days: 6

Original file line number Diff line number Diff line change

@@ -30,9 +30,9 @@ use crate::metadata::{

30 30

create_driver_metadata, get_driver_version_from_metadata, get_metadata, write_metadata,

31 31

};

32 32

use crate::{

33 -

create_http_client, format_one_arg, format_two_args, SeleniumManager, BETA, DASH_DASH_VERSION,

34 -

DEV, ENV_LOCALAPPDATA, ENV_PROGRAM_FILES, ENV_PROGRAM_FILES_X86, FALLBACK_RETRIES, NIGHTLY,

35 -

REG_QUERY, STABLE, WMIC_COMMAND, WMIC_COMMAND_ENV,

33 +

create_http_client, format_one_arg, format_three_args, SeleniumManager, BETA,

34 +

DASH_DASH_VERSION, DEV, ENV_LOCALAPPDATA, ENV_PROGRAM_FILES, ENV_PROGRAM_FILES_X86,

35 +

FALLBACK_RETRIES, NIGHTLY, REG_QUERY, REMOVE_X86, STABLE, WMIC_COMMAND, WMIC_COMMAND_ENV,

36 36

};

37 37 38 38

pub const CHROME_NAME: &str = "chrome";

@@ -126,9 +126,19 @@ impl SeleniumManager for ChromeManager {

126 126

Some(path) => {

127 127

browser_path = path;

128 128

commands = vec![

129 -

format_two_args(WMIC_COMMAND_ENV, ENV_PROGRAM_FILES, browser_path),

130 -

format_two_args(WMIC_COMMAND_ENV, ENV_PROGRAM_FILES_X86, browser_path),

131 -

format_two_args(WMIC_COMMAND_ENV, ENV_LOCALAPPDATA, browser_path),

129 +

format_three_args(

130 +

WMIC_COMMAND_ENV,

131 +

ENV_PROGRAM_FILES,

132 +

REMOVE_X86,

133 +

browser_path,

134 +

),

135 +

format_three_args(

136 +

WMIC_COMMAND_ENV,

137 +

ENV_PROGRAM_FILES_X86,

138 +

"",

139 +

browser_path,

140 +

),

141 +

format_three_args(WMIC_COMMAND_ENV, ENV_LOCALAPPDATA, "", browser_path),

132 142

];

133 143

if !self.is_browser_version_unstable() {

134 144

commands.push(format_one_arg(

Original file line number Diff line number Diff line change

@@ -16,14 +16,9 @@

16 16

// under the License.

17 17 18 18

use crate::config::OS::{LINUX, MACOS, WINDOWS};

19 -

use crate::TTL_BROWSERS_SEC;

20 -

use crate::TTL_DRIVERS_SEC;

21 - 22 19

use crate::files::get_cache_folder;

23 -

use crate::{

24 -

format_one_arg, run_shell_command, ENV_PROCESSOR_ARCHITECTURE, REQUEST_TIMEOUT_SEC,

25 -

UNAME_COMMAND,

26 -

};

20 +

use crate::{format_one_arg, run_shell_command, REQUEST_TIMEOUT_SEC, UNAME_COMMAND};

21 +

use crate::{ARCH_AMD64, ARCH_ARM64, ARCH_X86, TTL_BROWSERS_SEC, TTL_DRIVERS_SEC, WMIC_COMMAND_OS};

27 22

use std::env;

28 23

use std::env::consts::OS;

29 24

use std::error::Error;

@@ -52,15 +47,22 @@ impl ManagerConfig {

52 47

pub fn default(browser_name: &str, driver_name: &str) -> ManagerConfig {

53 48

let self_os = OS;

54 49

let self_arch = if WINDOWS.is(self_os) {

55 -

env::var(ENV_PROCESSOR_ARCHITECTURE).unwrap_or_default()

50 +

if run_shell_command(self_os, WMIC_COMMAND_OS.to_string())

51 +

.unwrap_or_default()

52 +

.contains("32")

53 +

{

54 +

ARCH_X86.to_string()

55 +

} else {

56 +

ARCH_AMD64.to_string()

57 +

}

56 58

} else {

57 59

let uname_a = format_one_arg(UNAME_COMMAND, "a");

58 60

if run_shell_command(self_os, uname_a)

59 61

.unwrap_or_default()

60 62

.to_ascii_lowercase()

61 -

.contains(ARM64_ARCH)

63 +

.contains(ARCH_ARM64)

62 64

{

63 -

ARM64_ARCH.to_string()

65 +

ARCH_ARM64.to_string()

64 66

} else {

65 67

let uname_m = format_one_arg(UNAME_COMMAND, "m");

66 68

run_shell_command(self_os, uname_m).unwrap_or_default()

@@ -147,9 +149,9 @@ pub enum ARCH {

147 149

impl ARCH {

148 150

pub fn to_str_vector(&self) -> Vec<&str> {

149 151

match self {

150 -

ARCH::X32 => vec!["x86", "i386"],

151 -

ARCH::X64 => vec!["x86_64", "x64", "i686", "amd64", "ia64"],

152 -

ARCH::ARM64 => vec![ARM64_ARCH, "aarch64", "arm"],

152 +

ARCH::X32 => vec![ARCH_X86, "i386"],

153 +

ARCH::X64 => vec![ARCH_AMD64, "x86_64", "x64", "i686", "ia64"],

154 +

ARCH::ARM64 => vec![ARCH_ARM64, "aarch64", "arm"],

153 155

}

154 156

}

155 157 Original file line number Diff line number Diff line change

@@ -29,9 +29,9 @@ use crate::metadata::{

29 29

create_driver_metadata, get_driver_version_from_metadata, get_metadata, write_metadata,

30 30

};

31 31

use crate::{

32 -

create_http_client, format_one_arg, format_two_args, Logger, SeleniumManager, BETA,

32 +

create_http_client, format_one_arg, format_three_args, Logger, SeleniumManager, BETA,

33 33

DASH_DASH_VERSION, DEV, ENV_LOCALAPPDATA, ENV_PROGRAM_FILES, ENV_PROGRAM_FILES_X86, NIGHTLY,

34 -

REG_QUERY, STABLE, WMIC_COMMAND, WMIC_COMMAND_ENV,

34 +

REG_QUERY, REMOVE_X86, STABLE, WMIC_COMMAND, WMIC_COMMAND_ENV,

35 35

};

36 36 37 37

pub const EDGE_NAMES: &[&str] = &["edge", "msedge", "microsoftedge"];

@@ -126,9 +126,19 @@ impl SeleniumManager for EdgeManager {

126 126

Some(path) => {

127 127

browser_path = path;

128 128

commands = vec![

129 -

format_two_args(WMIC_COMMAND_ENV, ENV_PROGRAM_FILES_X86, browser_path),

130 -

format_two_args(WMIC_COMMAND_ENV, ENV_PROGRAM_FILES, browser_path),

131 -

format_two_args(WMIC_COMMAND, ENV_LOCALAPPDATA, browser_path),

129 +

format_three_args(

130 +

WMIC_COMMAND_ENV,

131 +

ENV_PROGRAM_FILES_X86,

132 +

"",

133 +

browser_path,

134 +

),

135 +

format_three_args(

136 +

WMIC_COMMAND_ENV,

137 +

ENV_PROGRAM_FILES,

138 +

REMOVE_X86,

139 +

browser_path,

140 +

),

141 +

format_three_args(WMIC_COMMAND, ENV_LOCALAPPDATA, "", browser_path),

132 142

];

133 143

if !self.is_browser_version_unstable() {

134 144

commands.push(format_one_arg(

Original file line number Diff line number Diff line change

@@ -29,9 +29,9 @@ use crate::metadata::{

29 29

create_driver_metadata, get_driver_version_from_metadata, get_metadata, write_metadata,

30 30

};

31 31

use crate::{

32 -

create_http_client, format_one_arg, format_two_args, Logger, SeleniumManager, BETA,

33 -

DASH_VERSION, DEV, ENV_PROGRAM_FILES, ENV_PROGRAM_FILES_X86, NIGHTLY, STABLE, WMIC_COMMAND,

34 -

WMIC_COMMAND_ENV,

32 +

create_http_client, format_one_arg, format_three_args, Logger, SeleniumManager, BETA,

33 +

DASH_VERSION, DEV, ENV_PROGRAM_FILES, ENV_PROGRAM_FILES_X86, NIGHTLY, REMOVE_X86, STABLE,

34 +

WMIC_COMMAND, WMIC_COMMAND_ENV,

35 35

};

36 36 37 37

pub const FIREFOX_NAME: &str = "firefox";

@@ -126,8 +126,18 @@ impl SeleniumManager for FirefoxManager {

126 126

Some(path) => {

127 127

browser_path = path;

128 128

commands = vec![

129 -

format_two_args(WMIC_COMMAND_ENV, ENV_PROGRAM_FILES, browser_path),

130 -

format_two_args(WMIC_COMMAND_ENV, ENV_PROGRAM_FILES_X86, browser_path),

129 +

format_three_args(

130 +

WMIC_COMMAND_ENV,

131 +

ENV_PROGRAM_FILES,

132 +

REMOVE_X86,

133 +

browser_path,

134 +

),

135 +

format_three_args(

136 +

WMIC_COMMAND_ENV,

137 +

ENV_PROGRAM_FILES_X86,

138 +

"",

139 +

browser_path,

140 +

),

131 141

];

132 142

}

133 143

_ => return None,

Original file line number Diff line number Diff line change

@@ -61,7 +61,9 @@ pub const DEV: &str = "dev";

61 61

pub const CANARY: &str = "canary";

62 62

pub const NIGHTLY: &str = "nightly";

63 63

pub const WMIC_COMMAND: &str = r#"wmic datafile where name='{}' get Version /value"#;

64 -

pub const WMIC_COMMAND_ENV: &str = r#"wmic datafile where name='%{}:\=\\%{}' get Version /value"#;

64 +

pub const WMIC_COMMAND_ENV: &str =

65 +

r#"set PFILES=%{}{}%&& wmic datafile where name='!PFILES:\=\\!{}' get Version /value"#;

66 +

pub const WMIC_COMMAND_OS: &str = r#"wmic os get osarchitecture"#;

65 67

pub const REG_QUERY: &str = r#"REG QUERY {} /v version"#;

66 68

pub const PLIST_COMMAND: &str =

67 69

r#"/usr/libexec/PlistBuddy -c "print :CFBundleShortVersionString" {}/Contents/Info.plist"#;

@@ -70,6 +72,10 @@ pub const DASH_DASH_VERSION: &str = "{} --version";

70 72

pub const ENV_PROGRAM_FILES: &str = "PROGRAMFILES";

71 73

pub const ENV_PROGRAM_FILES_X86: &str = "PROGRAMFILES(X86)";

72 74

pub const ENV_LOCALAPPDATA: &str = "LOCALAPPDATA";

75 +

pub const REMOVE_X86: &str = ": (x86)=";

76 +

pub const ARCH_X86: &str = "x86";

77 +

pub const ARCH_AMD64: &str = "amd64";

78 +

pub const ARCH_ARM64: &str = "arm64";

73 79

pub const ENV_PROCESSOR_ARCHITECTURE: &str = "PROCESSOR_ARCHITECTURE";

74 80

pub const FALLBACK_RETRIES: u32 = 5;

75 81

pub const WHERE_COMMAND: &str = "where {}";

@@ -528,7 +534,7 @@ pub fn create_http_client(timeout: u64, proxy: String) -> Result<Client, String>

528 534 529 535

pub fn run_shell_command(os: &str, command: String) -> Result<String, Box<dyn Error>> {

530 536

let (shell, flag) = if WINDOWS.is(os) {

531 -

("cmd", "/C")

537 +

("cmd", "/v/c")

532 538

} else {

533 539

("sh", "-c")

534 540

};

@@ -545,8 +551,11 @@ pub fn format_one_arg(string: &str, arg1: &str) -> String {

545 551

string.replacen("{}", arg1, 1)

546 552

}

547 553 548 -

pub fn format_two_args(string: &str, arg1: &str, arg2: &str) -> String {

549 -

string.replacen("{}", arg1, 1).replacen("{}", arg2, 2)

554 +

pub fn format_three_args(string: &str, arg1: &str, arg2: &str, arg3: &str) -> String {

555 +

string

556 +

.replacen("{}", arg1, 1)

557 +

.replacen("{}", arg2, 1)

558 +

.replacen("{}", arg3, 1)

550 559

}

551 560 552 561

// ----------------------------------------------------------

Original file line number Diff line number Diff line change

@@ -155,12 +155,14 @@ pub fn write_metadata(metadata: &Metadata, log: &Logger) {

155 155

.unwrap();

156 156

}

157 157 158 -

pub fn clear_metadata(log: &Logger){

158 +

pub fn clear_metadata(log: &Logger) {

159 159

let metadata_path = get_metadata_path();

160 -

log.trace(format!("Deleting metadata file {}", metadata_path.display()));

161 -

match fs::remove_file(metadata_path){

160 +

log.trace(format!(

161 +

"Deleting metadata file {}",

162 +

metadata_path.display()

163 +

));

164 +

match fs::remove_file(metadata_path) {

162 165

Ok(()) => log.trace("Metadata file was deleted".to_string()),

163 -

Err(err) => log.warn(

164 -

format!("Metadata file deleting invoked an error: {}",err)),

166 +

Err(err) => log.warn(format!("Metadata file deleting invoked an error: {}", err)),

165 167

}

166 168

}

You can’t perform that action at this time.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4