Mountain/IPC/WindServiceHandlers/Configuration/EnvironmentGet.rs
1#![allow(unused_variables, dead_code, unused_imports)]
2
3//! Wire method: `environment:get`.
4
5use std::sync::Arc;
6
7use serde_json::{Value, json};
8
9use crate::{RunTime::ApplicationRunTime::ApplicationRunTime, dev_log};
10
11pub async fn Fn(RunTime:Arc<ApplicationRunTime>, Arguments:Vec<Value>) -> Result<Value, String> {
12 let key = Arguments
13 .get(0)
14 .ok_or("Missing environment key".to_string())?
15 .as_str()
16 .ok_or("Environment key must be a string".to_string())?;
17
18 let value = std::env::var(key).map_err(|Error| format!("Failed to get environment variable: {}", Error))?;
19
20 dev_log!("config", "env_get: {}", key);
21
22 Ok(json!(value))
23}