12345678910111213141516171819202122232425262728293031 |
- 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;
- }
- }
- }
|