@@ -37,7 +37,8 @@ use crate::metadata::{
3737use crate :: safari:: { SafariManager , SAFARIDRIVER_NAME , SAFARI_NAME } ;
3838use crate :: safaritp:: { SafariTPManager , SAFARITP_NAMES } ;
3939use crate :: shell:: {
40- run_shell_command, run_shell_command_by_os, run_shell_command_with_log, Command ,
40+ run_powershell_command_with_log, run_shell_command, run_shell_command_by_os,
41+ run_shell_command_with_log, Command ,
4142} ;
4243use crate :: stats:: { send_stats_to_plausible, Props } ;
4344use anyhow:: anyhow;
@@ -77,8 +78,6 @@ pub const NIGHTLY: &str = "nightly";
7778pub const ESR : & str = "esr" ;
7879pub const PS_GET_VERSION_COMMAND : & str = r#"(Get-Item "{}").VersionInfo.ProductVersion"# ;
7980pub const PS_GET_OS_COMMAND : & str = "(Get-WmiObject Win32_OperatingSystem).OSArchitecture" ;
80- pub const PS_MSIEXEC_INSTALL_COMMAND : & str =
81- r#"Start-Process -FilePath msiexec -ArgumentList "/i {} /qn ALLOWDOWNGRADE=1" -Wait"# ;
8281pub const REG_VERSION_ARG : & str = "version" ;
8382pub const REG_CURRENT_VERSION_ARG : & str = "CurrentVersion" ;
8483pub const REG_PV_ARG : & str = "pv" ;
@@ -87,6 +86,7 @@ pub const PLIST_COMMAND: &str =
8786pub const HDIUTIL_ATTACH_COMMAND : & str = "hdiutil attach {}" ;
8887pub const HDIUTIL_DETACH_COMMAND : & str = "hdiutil detach /Volumes/{}" ;
8988pub const CP_VOLUME_COMMAND : & str = "cp -R /Volumes/{}/{}.app {}" ;
89+ pub const MSIEXEC_INSTALL_COMMAND : & str = "start /wait msiexec /i {} /qn ALLOWDOWNGRADE=1" ;
9090pub const WINDOWS_CHECK_ADMIN_COMMAND : & str = "net session" ;
9191pub const DASH_VERSION : & str = "{}{}{} -v" ;
9292pub const DASH_DASH_VERSION : & str = "{}{}{} --version" ;
@@ -444,14 +444,22 @@ pub trait SeleniumManager {
444444 ) ) ;
445445 let mut browser_version: Option < String > = None ;
446446 for driver_version_command in commands. into_iter ( ) {
447- let output = match run_shell_command_with_log (
448- self . get_logger ( ) ,
449- self . get_os ( ) ,
450- driver_version_command,
451- ) {
452- Ok ( out) => out,
453- Err ( _e) => continue ,
447+ let output = if driver_version_command. display ( ) . starts_with ( "(Get-" ) {
448+ match run_powershell_command_with_log ( self . get_logger ( ) , driver_version_command) {
449+ Ok ( out) => out,
450+ Err ( _e) => continue ,
451+ }
452+ } else {
453+ match run_shell_command_with_log (
454+ self . get_logger ( ) ,
455+ self . get_os ( ) ,
456+ driver_version_command,
457+ ) {
458+ Ok ( out) => out,
459+ Err ( _e) => continue ,
460+ }
454461 } ;
462+
455463 let full_browser_version = parse_version ( output, self . get_logger ( ) ) . unwrap_or_default ( ) ;
456464 if full_browser_version. is_empty ( ) {
457465 continue ;
0 commit comments