aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-04-19 13:09:42 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-04-19 13:09:42 +0200
commit1c492cb0cd65fef1efa3418457e0b394f9611d41 (patch)
treed746f857d1e8975bb4b437b8272909de436332ec
parenttreewide: Update (diff)
downloadnixos-config-1c492cb0cd65fef1efa3418457e0b394f9611d41.zip
pkgs/fupdate: Improve error reporting
-rw-r--r--pkgs/by-name/fu/fupdate/src/main.rs18
1 files changed, 12 insertions, 6 deletions
diff --git a/pkgs/by-name/fu/fupdate/src/main.rs b/pkgs/by-name/fu/fupdate/src/main.rs
index 850eaf87..759f65ec 100644
--- a/pkgs/by-name/fu/fupdate/src/main.rs
+++ b/pkgs/by-name/fu/fupdate/src/main.rs
@@ -12,7 +12,7 @@ fn main() -> Result<(), anyhow::Error> {
let args = CliArgs::parse();
- let other = args.command.first().map_or("flake", String::as_str);
+ let command = args.command.first().map_or("flake", String::as_str);
{
let args = if args.command.len() > 1 {
@@ -21,13 +21,19 @@ fn main() -> Result<(), anyhow::Error> {
&[]
};
- let status = Command::new(format!("fupdate-{other}"))
+ // println!("Running: `fupdate-{command} {}`", args.join(" "));
+
+ let mut child = Command::new(format!("fupdate-{command}"))
.args(args)
- .status()
- .with_context(|| format!("Failed to execute `fupdate-{other}`"))?;
+ .spawn()
+ .with_context(|| format!("Failed to spawn `fupdate-{command}`"))?;
- if !status.success() {
- bail!("Command `fupdate-{other}` failed!");
+ if !child
+ .wait()
+ .with_context(|| format!("Failed to wait for `fupdate-{command}` to finish"))?
+ .success()
+ {
+ bail!("Command `fupdate-{command} {}` failed!", args.join(" "));
}
}