aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorstuebinm2023-10-01 21:19:33 +0200
committerstuebinm2024-03-10 21:48:23 +0100
commit9001480e03ab8c957716e2bf164bbde605472399 (patch)
treeb5eda915dd4d7226b711c139b425ba3acac7bcf0 /src
parent0a0187794ac7f7a1e62cda3dabf8dc041f868790 (diff)
Add a flag for building with nix-output-monitornom-flag
all this does is to replace the build invocations of nix/nix-build with nom/nom-build (of https://github.com/maralorn/nix-output-monitor) which gives more structured output of the running build.
Diffstat (limited to '')
-rw-r--r--src/cli.rs6
-rw-r--r--src/push.rs7
2 files changed, 10 insertions, 3 deletions
diff --git a/src/cli.rs b/src/cli.rs
index 47dc936..2d3d044 100644
--- a/src/cli.rs
+++ b/src/cli.rs
@@ -106,6 +106,9 @@ pub struct Opts {
/// Prompt for sudo password during activation.
#[clap(long)]
interactive_sudo: Option<bool>,
+ /// Call nom (nix-output-monitor) when building the configuration.
+ #[clap(long)]
+ nom: bool,
}
/// Returns if the available Nix installation supports flakes
@@ -424,6 +427,7 @@ async fn run_deploy(
boot: bool,
log_dir: &Option<String>,
rollback_succeeded: bool,
+ use_nom: bool,
) -> Result<(), RunDeployError> {
let to_deploy: ToDeploy = deploy_flakes
.iter()
@@ -581,6 +585,7 @@ async fn run_deploy(
keep_result,
result_path,
extra_build_args,
+ use_nom,
},
)
};
@@ -717,6 +722,7 @@ pub async fn run(args: Option<&ArgMatches>) -> Result<(), RunError> {
opts.boot,
&opts.log_dir,
opts.rollback_succeeded.unwrap_or(true),
+ opts.nom,
)
.await?;
diff --git a/src/push.rs b/src/push.rs
index c800a98..2d34436 100644
--- a/src/push.rs
+++ b/src/push.rs
@@ -57,6 +57,7 @@ pub struct PushProfileData<'a> {
pub keep_result: bool,
pub result_path: Option<&'a str>,
pub extra_build_args: &'a [String],
+ pub use_nom: bool,
}
pub async fn build_profile_locally(data: &PushProfileData<'_>, derivation_name: &str) -> Result<(), PushProfileError> {
@@ -66,9 +67,9 @@ pub async fn build_profile_locally(data: &PushProfileData<'_>, derivation_name:
);
let mut build_command = if data.supports_flakes {
- Command::new("nix")
+ Command::new(if data.use_nom {"nom"} else {"nix"})
} else {
- Command::new("nix-build")
+ Command::new(if data.use_nom {"nom-build"} else {"nix-build"})
};
if data.supports_flakes {
@@ -184,7 +185,7 @@ pub async fn build_profile_remotely(data: &PushProfileData<'_>, derivation_name:
a => return Err(PushProfileError::CopyExit(a)),
};
- let mut build_command = Command::new("nix");
+ let mut build_command = Command::new(if data.use_nom {"nom"} else {"nix"});
build_command
.arg("build").arg(derivation_name)
.arg("--eval-store").arg("auto")