use toml::Value; use crate::{cfg, syscall}; use crate::logger::LogWriter; pub async fn load_env(logger: LogWriter) { let cfg_inst = cfg::CFG.get().await; let cfg_etc = cfg_inst.get_etc_cfg(); let cfg_boot = cfg_inst.get_boot_cfg(); logger.debug("load env vars...").await; for (k, v) in cfg_etc.env.iter(){ match v { Value::String(val) => { logger.debug(format!("'{}'='{}'", k, val).as_str()).await; std::env::set_var(k, val); } _ => { logger.warn(format!("invalid var '{}' in config.", k).as_str()).await; } } } let hostname = cfg_boot.hostname.as_str(); let shn_res = syscall::hostname::set_hostname(hostname); match shn_res { Ok(_) => { logger.debug(format!("set hostname to '{}'.", hostname).as_str()).await; } Err(e) => { logger.warn(format!("failed set hostname to '{}': {:?}", hostname, e).as_str()).await; } } }