about summary refs log tree commit diff
path: root/src/tools
diff options
context:
space:
mode:
authorjackh726 <git@jackhuey.me>2025-08-13 19:49:59 +0000
committerjackh726 <git@jackhuey.me>2025-08-13 19:49:59 +0000
commit23e8a1e1398f5c17f4c64fe740479c2df31c9fd0 (patch)
tree59f4ce7b0c41fa4ffe7c247885453a2862a93fe6 /src/tools
parentb7e4b28c3be2ac96db9dcb6594aecb84355ecd44 (diff)
downloadrust-23e8a1e1398f5c17f4c64fe740479c2df31c9fd0.tar.gz
rust-23e8a1e1398f5c17f4c64fe740479c2df31c9fd0.zip
Don't panic if unable to identify host in metrics
Diffstat (limited to 'src/tools')
-rw-r--r--src/tools/rust-analyzer/xtask/src/metrics.rs8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/tools/rust-analyzer/xtask/src/metrics.rs b/src/tools/rust-analyzer/xtask/src/metrics.rs
index c9eea871060..fd4b600b034 100644
--- a/src/tools/rust-analyzer/xtask/src/metrics.rs
+++ b/src/tools/rust-analyzer/xtask/src/metrics.rs
@@ -160,7 +160,7 @@ struct Host {
 
 impl Metrics {
     fn new(sh: &Shell) -> anyhow::Result<Metrics> {
-        let host = Host::new(sh)?;
+        let host = Host::new(sh).unwrap_or_else(|_| Host::unknown());
         let timestamp = SystemTime::now();
         let revision = cmd!(sh, "git rev-parse HEAD").read()?;
         let perf_revision = "a584462e145a0c04760fd9391daefb4f6bd13a99".into();
@@ -191,9 +191,13 @@ impl Metrics {
 }
 
 impl Host {
+    fn unknown() -> Host {
+        Host { os: "unknown".into(), cpu: "unknown".into(), mem: "unknown".into() }
+    }
+
     fn new(sh: &Shell) -> anyhow::Result<Host> {
         if cfg!(not(target_os = "linux")) {
-            return Ok(Host { os: "unknown".into(), cpu: "unknown".into(), mem: "unknown".into() });
+            return Ok(Host::unknown());
         }
 
         let os = read_field(sh, "/etc/os-release", "PRETTY_NAME=")?.trim_matches('"').to_owned();