diff --git a/Cargo.toml b/Cargo.toml index cc40cdd..3465485 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,3 +42,5 @@ shadow-rs = { version = "0.36", features = ["metadata"] } [features] # This feature should be enabled when building static executable openssl-vendored = ["openssl/vendored"] +# Use new version of Linux VM builder (unstable) +vm-builder-v2 = [] diff --git a/src/builders_v2/mod.rs b/src/builders_v2/mod.rs new file mode 100644 index 0000000..c3eecb2 --- /dev/null +++ b/src/builders_v2/mod.rs @@ -0,0 +1 @@ +//! Builders v2. diff --git a/src/commands/build.rs b/src/commands/build.rs index 73e8207..9bed84f 100644 --- a/src/commands/build.rs +++ b/src/commands/build.rs @@ -1,5 +1,3 @@ -use crate::builders::skopeo_builder::SkopeoSyslinuxBuilder; -use crate::builders::{BuildOptions, ImageBuilder}; use crate::OutputFormat; use clap::ValueHint; use std::path::PathBuf; @@ -206,9 +204,18 @@ impl BuildArgs { } } +#[cfg(not(feature = "vm-builder-v2"))] async fn build(build_args: &BuildArgs) -> Result<(), Box> { + use crate::builders::skopeo_builder::SkopeoSyslinuxBuilder; + use crate::builders::{BuildOptions, ImageBuilder}; + let options = BuildOptions::from(build_args); let builder = SkopeoSyslinuxBuilder {}; builder.build(&options)?; Ok(()) } + +#[cfg(feature = "vm-builder-v2")] +async fn build(_build_args: &BuildArgs) -> Result<(), Box> { + todo!() +} diff --git a/src/main.rs b/src/main.rs index 489b2b4..e272f07 100644 --- a/src/main.rs +++ b/src/main.rs @@ -8,7 +8,10 @@ use std::fs::File; use std::io::{self, Write}; use std::path::PathBuf; +#[cfg(not(feature = "vm-builder-v2"))] mod builders; +#[cfg(feature = "vm-builder-v2")] +mod builders_v2; mod commands; mod utils; mod version;