use std::fs; use std::fs::DirBuilder; use std::os::unix::fs::DirBuilderExt; use crate::cfg; use crate::log::logger; pub fn mkdir_p(dir: &str) { logger().debug("mkdir", format!("mkdir '{}'...", dir).as_str()); logger().chk_fatal(fs::create_dir_all(dir),"mkdir",format!("failed create dir '{}'", dir).as_str()); } pub fn export_initrd_env_from_cfg() { let env_var = cfg::CFG.get().get_cfg().get_initrd_env(); for (k, v) in env_var { logger().debug("env", format!("export {}={}", &k, &v).as_str()); std::env::set_var(k, v); } } pub fn export_env_from_cfg() { let env_var = cfg::CFG.get().get_cfg().get_env(); for (k, v) in env_var { logger().debug("env", format!("export {}={}", &k, &v).as_str()); std::env::set_var(k, v); } } pub fn mkdir_p_with_mode(dir: &str, mode: u32) { let mut db = DirBuilder::new(); db.recursive(true); db.mode(mode); let r = db.create(dir); logger().chk_fatal(r, "mkdir", format!("failed create dir '{}'", dir).as_str()); }