Mountain/Binary/Service/CocoonStart.rs
1//! # Cocoon Start Module
2//!
3//! Initializes and starts the Cocoon sidecar process.
4
5use log::{error, info};
6
7use crate::{
8 Environment::MountainEnvironment::MountainEnvironment,
9 ProcessManagement::CocoonManagement::InitializeCocoon,
10};
11
12/// Starts the Cocoon sidecar process for build tool support.
13///
14/// # Arguments
15///
16/// * `ApplicationHandle` - The Tauri application handle
17/// * `Environment` - The Mountain environment instance
18///
19/// # Returns
20///
21/// A `Result` indicating success or failure.
22///
23/// # Cocoon Sidecar Functionality
24///
25/// The Cocoon sidecar provides:
26/// - Build tool integration
27/// - Process management for external tools
28/// - Communication bridge with external build processes
29///
30/// # Errors
31///
32/// Returns an error if Cocoon initialization fails.
33pub async fn CocoonStart(
34 ApplicationHandle:&tauri::AppHandle,
35 Environment:&std::sync::Arc<MountainEnvironment>,
36) -> Result<(), String> {
37 match InitializeCocoon(ApplicationHandle, Environment).await {
38 Ok(()) => {
39 info!("[Cocoon] [Start] Cocoon sidecar started successfully.");
40 Ok(())
41 },
42 Err(e) => {
43 error!("[Cocoon] [Start] Failed to start: {}", e);
44 Err(format!("Failed to start Cocoon sidecar: {}", e))
45 },
46 }
47}