Skip to content

Commit

Permalink
feat(cli.rs/info): get webview2 version on windows (#1669)
Browse files Browse the repository at this point in the history
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
  • Loading branch information
amrbashir and lucasfernog authored May 4, 2021
1 parent 314936e commit 2b4e2b7
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 1 deletion.
5 changes: 5 additions & 0 deletions .changes/cli-rs-info-webview2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"cli.rs": patch
---

Adds Webview2 version on `info` command.
28 changes: 27 additions & 1 deletion tooling/cli.rs/src/info.rs
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,29 @@ fn get_version(command: &str, args: &[&str]) -> crate::Result<Option<String>> {
Ok(version)
}

#[cfg(windows)]
fn webview2_version() -> crate::Result<Option<String>> {
let output = Command::new("powershell")
.args(&["-NoProfile", "-Command"])
.arg("Get-ItemProperty -Path 'HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\EdgeUpdate\\Clients\\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}' | ForEach-Object {$_.pv}")
.output()?;
let version = if output.status.success() {
Some(String::from_utf8_lossy(&output.stdout).replace("\n", ""))
} else {
// check 32bit installation
let output = Command::new("powershell")
.args(&["-NoProfile", "-Command"])
.arg("Get-ItemProperty -Path 'HKLM:\\SOFTWARE\\Microsoft\\EdgeUpdate\\Clients\\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}' | ForEach-Object {$_.pv}")
.output()?;
if output.status.success() {
Some(String::from_utf8_lossy(&output.stdout).replace("\n", ""))
} else {
None
}
};
Ok(version)
}

struct InfoBlock {
section: bool,
key: &'static str,
Expand Down Expand Up @@ -289,7 +312,7 @@ impl VersionBlock {
if let Some(version) = &self.version {
print!(" - {}", version);
} else {
print!(" Not installed");
print!(" - Not installed");
}
if let (Some(version), Some(target_version)) = (&self.version, &self.target_version) {
let version = semver::Version::parse(version).unwrap();
Expand Down Expand Up @@ -322,6 +345,9 @@ impl Info {
}
.display();

#[cfg(windows)]
VersionBlock::new("Webview2", webview2_version().unwrap_or_default()).display();

let hook = panic::take_hook();
panic::set_hook(Box::new(|_info| {
// do nothing
Expand Down

0 comments on commit 2b4e2b7

Please sign in to comment.