@@ -61,7 +61,9 @@ pub const DEV: &str = "dev";
6161pub const CANARY : & str = "canary" ;
6262pub const NIGHTLY : & str = "nightly" ;
6363pub 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"# ;
6567pub const REG_QUERY : & str = r#"REG QUERY {} /v version"# ;
6668pub const PLIST_COMMAND : & str =
6769 r#"/usr/libexec/PlistBuddy -c "print :CFBundleShortVersionString" {}/Contents/Info.plist"# ;
@@ -70,6 +72,10 @@ pub const DASH_DASH_VERSION: &str = "{} --version";
7072pub const ENV_PROGRAM_FILES : & str = "PROGRAMFILES" ;
7173pub const ENV_PROGRAM_FILES_X86 : & str = "PROGRAMFILES(X86)" ;
7274pub 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" ;
7379pub const ENV_PROCESSOR_ARCHITECTURE : & str = "PROCESSOR_ARCHITECTURE" ;
7480pub const FALLBACK_RETRIES : u32 = 5 ;
7581pub const WHERE_COMMAND : & str = "where {}" ;
@@ -528,7 +534,7 @@ pub fn create_http_client(timeout: u64, proxy: String) -> Result<Client, String>
528534
529535pub fn run_shell_command ( os : & str , command : String ) -> Result < String , Box < dyn Error > > {
530536 let ( shell, flag) = if WINDOWS . is ( os) {
531- ( "cmd" , "/C " )
537+ ( "cmd" , "/v/c " )
532538 } else {
533539 ( "sh" , "-c" )
534540 } ;
@@ -545,8 +551,11 @@ pub fn format_one_arg(string: &str, arg1: &str) -> String {
545551 string. replacen ( "{}" , arg1, 1 )
546552}
547553
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 )
550559}
551560
552561// ----------------------------------------------------------
0 commit comments