use std::sync::Arc; use tracing::{error, info}; use crate::{config::settings::Settings, db, service}; pub async fn gen_certs( settings: &Settings, output: String, ) -> Result<(), Box> { info!("Generating CA certificate to output directory: {}", output); use service::certificate::CertificateService; let cert_service = service::certificate::CertificateServiceImpl::new( #[expect(clippy::expect_used)] db::establish_connection(&settings.database.url) .await .expect("Failed to connect to database"), output.to_string(), Arc::new(settings.clone()), ); cert_service .generate_ca_cert() .await .map_err(|e| { error!("Failed to generate CA certificate: {}", e); std::process::exit(1); }) .unwrap(); info!("Successfully generated CA certificate at: {}", output); Ok(()) }