From cad87b77c0003c851abb6264d3e373e9516edaae Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Wed, 12 Aug 2026 02:33:28 +0000 Subject: Compile typed package requests from build plans --- src/plan.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'src') diff --git a/src/plan.rs b/src/plan.rs index 3d28d96..f3e58fa 100644 --- a/src/plan.rs +++ b/src/plan.rs @@ -1,5 +1,8 @@ +use std::path::Path; + use anyhow::Result; +use crate::package_installer::{AptConfig, PackageRequest}; use crate::{ImageSpec, Stage}; #[derive(Debug, Clone, PartialEq, Eq)] @@ -24,4 +27,23 @@ impl BuildPlan { pub fn dependencies(&self, stage: Stage) -> &'static [Stage] { stage.dependencies() } + + /// Compile package-installation inputs from the validated immutable spec. + /// This keeps ALT's external resolver behind the typed adapter boundary. + pub fn package_request( + &self, + workdir: impl AsRef, + apt_config: impl AsRef, + ) -> Result { + PackageRequest::new( + workdir, + AptConfig::new(apt_config)?, + self.spec.packages.base.iter().cloned(), + self.spec + .packages + .selectors + .iter() + .map(|selector| selector.as_str().to_owned()), + ) + } } -- cgit v1.2.3