From 04197c7742453db964976e4a63c8da27995b392c Mon Sep 17 00:00:00 2001 From: Cole Helbling Date: Thu, 18 Jan 2024 14:21:20 -0800 Subject: [PATCH] Improve error handling if enqueuing paths failed --- magic-nix-cache/src/main.rs | 38 ++++++++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/magic-nix-cache/src/main.rs b/magic-nix-cache/src/main.rs index 79d0f9e..438e809 100644 --- a/magic-nix-cache/src/main.rs +++ b/magic-nix-cache/src/main.rs @@ -337,16 +337,36 @@ async fn post_build_hook(out_paths: &str) { .header("Content-Type", "application/json") .body(serde_json::to_string(&request).unwrap()) .send() - .await - .unwrap(); + .await; - if !response.status().is_success() { - eprintln!( - "magic-nix-cache server failed to enqueue the push request: {}", - response.status() - ); - } else { - response.json::().await.unwrap(); + let mut err_message = None; + match response { + Ok(response) if !response.status().is_success() => { + err_message = Some(format!( + "magic-nix-cache server failed to enqueue the push request: {}", + response.status() + )); + } + Ok(response) => { + let enqueue_paths_response = response.json::().await; + if let Err(err) = enqueue_paths_response { + err_message = Some(format!( + "magic-nix-cache-server didn't return a valid response: {}", + err + )) + } + } + Err(err) => { + err_message = Some(format!( + "magic-nix-cache server failed to send the enqueue request: {}", + err + )); + } + } + + if let Some(err_message) = err_message { + eprintln!("{err_message}"); + std::process::exit(1); } }