Skip to content

Commit 72dd916

Browse files
committed
feat: complete selected catalog execution seam
1 parent eabdb2f commit 72dd916

1 file changed

Lines changed: 18 additions & 4 deletions

File tree

src/run.rs

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -975,20 +975,24 @@ pub fn up_once_selected_specs(
975975

976976
/// Discover a folder catalog once, resolve one task before any owner hook/render mutation, then
977977
/// materialize only that owner and execute the selected plan.
978-
pub fn up_once_selected_catalog(
978+
pub fn up_once_selected(
979979
catalog_root: &Path,
980980
selector: &str,
981981
this_host: &str,
982982
runner: &dyn Runner,
983983
) -> anyhow::Result<UpReport> {
984984
let found = crate::discovery::discover(catalog_root);
985985
let (owner, _, _) = crate::reconcile::resolve_task(&found.specs, selector, this_host)?;
986+
let all_specs = found.specs.clone();
986987
let mut report = UpReport::default();
987988
report.warnings.extend(found.warnings);
988989
report.errors.extend(found.errors.into_iter().map(|e| e.message));
989990
let owner = owner.clone();
990-
if crate::hooks::required_by_codex(std::slice::from_ref(&owner), this_host) {
991-
crate::hooks::verify_installed().map_err(|e| anyhow::anyhow!("verify hooks: {e}"))?;
991+
if crate::hooks::required_by_codex_agent(&owner, this_host) {
992+
if let Err(error) = crate::hooks::verify_installed() {
993+
report.errors.push(format!("verify lifecycle hooks: {error}"));
994+
return Ok(report);
995+
}
992996
}
993997
let materialized =
994998
crate::materialize::materialize_catalog(catalog_root, std::slice::from_ref(&owner), this_host);
@@ -997,7 +1001,17 @@ pub fn up_once_selected_catalog(
9971001
if !report.errors.is_empty() {
9981002
return Ok(report);
9991003
}
1000-
up_once_selected_specs(catalog_root, std::slice::from_ref(&owner), selector, this_host, runner)
1004+
let mut execution = up_once_selected_specs_with_gates(
1005+
catalog_root, &all_specs, selector, this_host, runner,
1006+
|| Ok(()), crate::pretrust::pretrust_codex,
1007+
)?;
1008+
report.warnings.append(&mut execution.warnings);
1009+
report.errors.append(&mut execution.errors);
1010+
report.launched.append(&mut execution.launched);
1011+
report.torn_down.append(&mut execution.torn_down);
1012+
report.gc.append(&mut execution.gc);
1013+
report.adopted.append(&mut execution.adopted);
1014+
Ok(report)
10011015
}
10021016

10031017
fn up_once_selected_specs_with_gates<V, F>(

0 commit comments

Comments
 (0)