kittynode_core/application/
install_package.rs1use crate::infra::{
2 file::generate_jwt_secret,
3 package::{self, get_packages},
4 package_config::PackageConfigStore,
5};
6use eyre::{Context, Result};
7use tracing::info;
8
9pub async fn install_package(name: &str) -> Result<()> {
10 generate_jwt_secret().wrap_err("Failed to generate JWT secret")?;
11
12 let package = get_packages()?
13 .remove(name)
14 .ok_or_else(|| eyre::eyre!("Package '{}' not found", name))?;
15
16 let config = PackageConfigStore::load(name)?;
17 let network = config.values.get("network");
18
19 package::install_package(&package, network.map(String::as_str)).await?;
20 info!("Package '{}' installed successfully.", name);
21 Ok(())
22}