difftreelog
fix do not assert for secret regeneration command
in: trunk
4 files changed
cmds/fleet/src/main.rsdiffbeforeafterboth--- a/cmds/fleet/src/main.rs
+++ b/cmds/fleet/src/main.rs
@@ -203,7 +203,13 @@
.map(|a| extra_args::parse_os(&a))
.transpose()?
.unwrap_or_default();
- let config = opts.fleet_opts.build(nix_args).await?;
+ let config = opts
+ .fleet_opts
+ .build(
+ nix_args,
+ matches!(opts.command, Opts::Deploy(_) | Opts::BuildSystems(_)),
+ )
+ .await?;
match run_command(&config, opts.fleet_opts, opts.command).await {
Ok(()) => {
crates/fleet-base/src/opts.rsdiffbeforeafterboth--- a/crates/fleet-base/src/opts.rs
+++ b/crates/fleet-base/src/opts.rs
@@ -181,7 +181,7 @@
}
// TODO: Config should be detached from opts.
- pub async fn build(&self, nix_args: Vec<OsString>) -> Result<Config> {
+ pub async fn build(&self, nix_args: Vec<OsString>, assert: bool) -> Result<Config> {
let directory = current_dir()?;
let pool = NixSessionPool::new(
@@ -204,7 +204,9 @@
let config_field = nix_go!(fleet_field.config);
- assert_warn("fleet config evaluation", &config_field).await?;
+ if assert {
+ assert_warn("fleet config evaluation", &config_field).await?;
+ }
let import = nix_go!(builtins_field.import);
let overlays = nix_go!(config_field.nixpkgs.overlays);
crates/nix-eval/src/util.rsdiffbeforeafterboth1use anyhow::bail;2use tracing::{debug, warn};3use std::time::Instant;45use crate::{nix_go_json, Value};67pub async fn assert_warn(action: &str, val: &Value) -> anyhow::Result<()> {8 let before_errors = Instant::now();9 let errors: Vec<String> = nix_go_json!(val.errors);10 debug!("errors evaluation took {:?}", before_errors.elapsed());11 if !errors.is_empty() {12 bail!(13 "{action} failed with error{}{}",14 (errors.len() != 1).then_some("s:\n- ").unwrap_or(": "),15 errors.join("\n- "),16 );17 }1819 let before_errors = Instant::now();20 let warnings: Vec<String> = nix_go_json!(val.warnings);21 debug!("warnings evaluation took {:?}", before_errors.elapsed());22 if !warnings.is_empty() {23 warn!(24 "{action} completed with warning{}{}",25 (warnings.len() != 1).then_some("s:\n- ").unwrap_or(": "),26 warnings.join("\n- "),27 );28 }29 Ok(())30}1use std::time::Instant;23use anyhow::bail;4use tracing::{debug, warn};56use crate::{nix_go_json, Value};78#[tracing::instrument(level = "info", skip(val))]9pub async fn assert_warn(action: &str, val: &Value) -> anyhow::Result<()> {10 let before_errors = Instant::now();11 let errors: Vec<String> = nix_go_json!(val.errors);12 debug!("errors evaluation took {:?}", before_errors.elapsed());13 if !errors.is_empty() {14 bail!(15 "failed with error{}{}",16 if errors.len() != 1 { "s:\n- " } else { ": " },17 errors.join("\n- "),18 );19 }2021 let before_errors = Instant::now();22 let warnings: Vec<String> = nix_go_json!(val.warnings);23 debug!("warnings evaluation took {:?}", before_errors.elapsed());24 if !warnings.is_empty() {25 warn!(26 "completed with warning{}{}",27 if warnings.len() != 1 { "s:\n- " } else { ": " },28 warnings.join("\n- "),29 );30 }31 Ok(())32}modules/secrets-data.nixdiffbeforeafterboth--- a/modules/secrets-data.nix
+++ b/modules/secrets-data.nix
@@ -52,6 +52,7 @@
default = null;
};
};
+ config = {};
};
hostSecretData = {
@@ -78,6 +79,7 @@
default = null;
};
};
+ config = {};
};
in {
options.data = mkDataOption ({config, ...}: {