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}