diff --git a/crates/karapace-cli/src/commands/build.rs b/crates/karapace-cli/src/commands/build.rs index 4c73f72..71f7f1f 100644 --- a/crates/karapace-cli/src/commands/build.rs +++ b/crates/karapace-cli/src/commands/build.rs @@ -8,9 +8,7 @@ pub fn run( store_path: &Path, manifest: &Path, name: Option<&str>, - locked: bool, - offline: bool, - require_pinned_image: bool, + options: BuildOptions, json: bool, ) -> Result { let layout = StoreLayout::new(store_path); @@ -21,12 +19,6 @@ pub fn run( } else { Some(spinner("building environment...")) }; - let options = BuildOptions { - locked, - offline, - require_pinned_image, - }; - let result = match engine.build_with_options(manifest, options) { Ok(r) => { if let Some(ref pb) = pb { diff --git a/crates/karapace-cli/src/commands/pin.rs b/crates/karapace-cli/src/commands/pin.rs index 9bd09d2..fd56df1 100644 --- a/crates/karapace-cli/src/commands/pin.rs +++ b/crates/karapace-cli/src/commands/pin.rs @@ -32,8 +32,8 @@ pub fn run( json: bool, store_path: Option<&Path>, ) -> Result { - let manifest = parse_manifest_file(manifest_path) - .map_err(|e| format!("failed to parse manifest: {e}"))?; + let manifest = + parse_manifest_file(manifest_path).map_err(|e| format!("failed to parse manifest: {e}"))?; if check { if is_pinned(&manifest.base.image) { @@ -65,9 +65,7 @@ pub fn run( if write_lock { let store = store_path.ok_or_else(|| "internal error: missing store path".to_owned())?; let engine = karapace_core::Engine::new(store); - engine - .build(manifest_path) - .map_err(|e| e.to_string())?; + engine.build(manifest_path).map_err(|e| e.to_string())?; } if json { diff --git a/crates/karapace-cli/src/commands/rebuild.rs b/crates/karapace-cli/src/commands/rebuild.rs index 60c948e..a1a6b95 100644 --- a/crates/karapace-cli/src/commands/rebuild.rs +++ b/crates/karapace-cli/src/commands/rebuild.rs @@ -8,9 +8,7 @@ pub fn run( store_path: &Path, manifest: &Path, name: Option<&str>, - locked: bool, - offline: bool, - require_pinned_image: bool, + options: BuildOptions, json: bool, ) -> Result { let layout = StoreLayout::new(store_path); @@ -21,12 +19,6 @@ pub fn run( } else { Some(spinner("rebuilding environment...")) }; - let options = BuildOptions { - locked, - offline, - require_pinned_image, - }; - let result = match engine.rebuild_with_options(manifest, options) { Ok(r) => { if let Some(ref pb) = pb { diff --git a/crates/karapace-cli/src/main.rs b/crates/karapace-cli/src/main.rs index 2f64d35..8138048 100644 --- a/crates/karapace-cli/src/main.rs +++ b/crates/karapace-cli/src/main.rs @@ -3,7 +3,7 @@ mod commands; use clap::{Parser, Subcommand}; use clap_complete::Shell; use commands::{EXIT_FAILURE, EXIT_MANIFEST_ERROR, EXIT_STORE_ERROR}; -use karapace_core::{install_signal_handler, Engine}; +use karapace_core::{install_signal_handler, BuildOptions, Engine}; use std::path::PathBuf; use std::process::ExitCode; @@ -273,9 +273,11 @@ fn main() -> ExitCode { &store_path, &manifest, name.as_deref(), - locked, - offline, - require_pinned_image, + BuildOptions { + locked, + offline, + require_pinned_image, + }, json_output, ), Commands::Rebuild { @@ -289,22 +291,18 @@ fn main() -> ExitCode { &store_path, &manifest, name.as_deref(), - locked, - offline, - require_pinned_image, + BuildOptions { + locked, + offline, + require_pinned_image, + }, json_output, ), Commands::Pin { manifest, check, write_lock, - } => commands::pin::run( - &manifest, - check, - write_lock, - json_output, - Some(&store_path), - ), + } => commands::pin::run(&manifest, check, write_lock, json_output, Some(&store_path)), Commands::Enter { env_id, command } => { commands::enter::run(&engine, &store_path, &env_id, &command) } diff --git a/crates/karapace-core/src/engine.rs b/crates/karapace-core/src/engine.rs index 01c331e..356883b 100644 --- a/crates/karapace-core/src/engine.rs +++ b/crates/karapace-core/src/engine.rs @@ -172,9 +172,11 @@ impl Engine { let normalized = manifest.normalize()?; if options.offline && !normalized.system_packages.is_empty() { - return Err(CoreError::Runtime(karapace_runtime::RuntimeError::ExecFailed( - "offline mode: cannot resolve system packages".to_owned(), - ))); + return Err(CoreError::Runtime( + karapace_runtime::RuntimeError::ExecFailed( + "offline mode: cannot resolve system packages".to_owned(), + ), + )); } if options.require_pinned_image