From aa4754e30a8cfb5e9be3d88d3771df4232a3f5ee Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bastian=20K=C3=B6cher?= <git@kchr.de>
Date: Mon, 4 Dec 2023 17:03:47 +0100
Subject: [PATCH] contracts-fixtures: Do not assume that `rustup` is installed
 (#2586)

The build script was assuming that `rustup` is installed, which breaks
the build on systems that do not use `rustup`. This pull request just
fixes it by not panicking on the call to `rustup`.
---
 substrate/frame/contracts/fixtures/build.rs | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/substrate/frame/contracts/fixtures/build.rs b/substrate/frame/contracts/fixtures/build.rs
index ada2650c6db..49deb94a7fa 100644
--- a/substrate/frame/contracts/fixtures/build.rs
+++ b/substrate/frame/contracts/fixtures/build.rs
@@ -147,9 +147,7 @@ fn invoke_cargo_fmt<'a>(
 	if !Command::new("rustup")
 		.args(&["run", "nightly", "rustfmt", "--version"])
 		.output()
-		.expect("failed to execute process")
-		.status
-		.success()
+		.map_or(false, |o| o.status.success())
 	{
 		return Ok(())
 	}
@@ -169,10 +167,12 @@ fn invoke_cargo_fmt<'a>(
 	let stderr = String::from_utf8_lossy(&fmt_res.stderr);
 	eprintln!("{}\n{}", stdout, stderr);
 	eprintln!(
-		"Fixtures files are not formatted.\nPlease run `rustup run nightly rustfmt --config-path {} {}/*.rs`",
+		"Fixtures files are not formatted.\n
+		Please run `rustup run nightly rustfmt --config-path {} {}/*.rs`",
 		config_path.display(),
 		contract_dir.display()
 	);
+
 	anyhow::bail!("Fixtures files are not formatted")
 }
 
-- 
GitLab