use serde::{Deserialize, Serialize};
use schemars::JsonSchema;
#[derive(Debug, Deserialize, JsonSchema)]
pub struct Input {
pub name: String,
#[serde(default)]
pub default: String,
}
#[derive(Debug, Serialize, JsonSchema)]
pub struct Output {
pub name: String,
pub value: String,
pub exists: bool,
}
pub struct SysutilEnv;
impl SysutilEnv {
pub const MODULE_ID: &'static str = "sysutil.env";
pub const DESCRIPTION: &'static str = "Read an environment variable value";
pub fn execute(input: Input) -> Output {
let exists = std::env::var(&input.name).is_ok();
let value = std::env::var(&input.name).unwrap_or(input.default);
Output {
name: input.name,
value,
exists,
}
}
}
fn main() {
let input = Input {
name: "HOME".to_string(),
default: String::new(),
};
let output = SysutilEnv::execute(input);
println!("{}", serde_json::to_string_pretty(&output).unwrap());
}