diff --git a/libs/pavex_cli/src/main.rs b/libs/pavex_cli/src/main.rs index d19d80dc2..eaae785de 100644 --- a/libs/pavex_cli/src/main.rs +++ b/libs/pavex_cli/src/main.rs @@ -43,13 +43,7 @@ fn main() -> Result { init_miette_hook(&cli); let _guard = init_telemetry(cli.log_filter, cli.log, cli.perf_profile); - let mut client = Client::new().color(cli.color.into()); - if cli.debug { - client = client.debug(); - } else { - client = client.no_debug(); - } - + let client = pavexc_client(&cli); let system_home_dir = xdg_home::home_dir().ok_or_else(|| { miette::miette!("Failed to get the system home directory from the environment") })?; @@ -103,6 +97,30 @@ fn main() -> Result { .map_err(utils::anyhow2miette) } +/// Propagate introspection options from `pavex` to pavexc`. +fn pavexc_client(cli: &Cli) -> Client { + let mut client = Client::new().color(cli.color.into()); + if cli.debug { + client = client.debug(); + } else { + client = client.no_debug(); + } + if cli.log { + client = client.log(); + } else { + client = client.no_log(); + } + if cli.perf_profile { + client = client.perf_profile(); + } else { + client = client.no_perf_profile(); + } + if let Some(log_filter) = &cli.log_filter { + client = client.log_filter(log_filter.to_owned()); + } + client +} + #[tracing::instrument("Generate server sdk", skip(client, locator, shell))] fn generate( shell: &mut Shell, diff --git a/libs/pavex_cli_client/src/commands/generate.rs b/libs/pavex_cli_client/src/commands/generate.rs index 1d019070e..700d6ab88 100644 --- a/libs/pavex_cli_client/src/commands/generate.rs +++ b/libs/pavex_cli_client/src/commands/generate.rs @@ -68,7 +68,7 @@ impl GenerateBuilder { /// /// This method can be useful if you need to customize the command before running it. /// If that's not your usecase, consider using [`GenerateBuilder::execute`] instead. - pub fn command(mut self) -> Result { + pub fn command(mut self) -> Result { // TODO: Pass the blueprint via `stdin` instead of writing it to a file. let bp_path = self.output_directory.join("blueprint.ron"); self.blueprint