kittynode_core/application/
get_packages_runtime_state.rs1use crate::{
2 domain::package::PackageRuntimeState,
3 infra::package::{self, get_packages},
4};
5use eyre::{Result, WrapErr};
6use std::collections::HashMap;
7
8pub async fn get_packages_runtime_state(
9 names: &[String],
10) -> Result<HashMap<String, PackageRuntimeState>> {
11 let catalog = get_packages().wrap_err("Failed to retrieve packages")?;
12 let mut states = HashMap::new();
13
14 for name in names {
15 let package = catalog
16 .get(name)
17 .ok_or_else(|| eyre::eyre!("Package '{}' not found", name))?;
18 let state = package::get_package_runtime_state(package).await?;
19 states.insert(name.clone(), state);
20 }
21
22 Ok(states)
23}