Mountain/Binary/Service/ConfigurationInitialize.rs
1//! # Configuration Initialize Module
2//!
3//! Initializes and merges application configurations from multiple sources.
4
5use log::{error, info};
6
7use crate::Environment::{
8 ConfigurationProvider::Loading::initialize_and_merge_configurations,
9 MountainEnvironment::MountainEnvironment,
10};
11
12/// Initializes and merges all application configurations.
13///
14/// # Arguments
15///
16/// * `Environment` - The Mountain environment instance
17///
18/// # Returns
19///
20/// A `Result` indicating success or failure.
21///
22/// # Configuration Sources
23///
24/// The configuration initialization process merges configurations from:
25/// - Default application settings
26/// - User configuration files
27/// - Environment variables
28/// - Command-line arguments
29/// - External service configurations
30///
31/// # Errors
32///
33/// Returns an error if configuration initialization or merging fails.
34pub async fn ConfigurationInitialize(Environment:&std::sync::Arc<MountainEnvironment>) -> Result<(), String> {
35 match initialize_and_merge_configurations(Environment).await {
36 Ok(()) => {
37 info!("[Config] [Initialize] Configuration initialized and merged successfully.");
38 Ok(())
39 },
40 Err(e) => {
41 error!("[Config] [Initialize] Failed: {}", e);
42 Err(format!("Failed to initialize and merge configurations: {}", e))
43 },
44 }
45}