makesure.rs 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. use std::fs;
  2. use std::fs::DirBuilder;
  3. use std::os::unix::fs::DirBuilderExt;
  4. use crate::cfg;
  5. use crate::log::logger;
  6. pub fn mkdir_p(dir: &str) {
  7. logger().debug("mkdir", format!("mkdir '{}'...", dir).as_str());
  8. logger().chk_fatal(fs::create_dir_all(dir),"mkdir",format!("failed create dir '{}'", dir).as_str());
  9. }
  10. pub fn export_initrd_env_from_cfg() {
  11. let env_var = cfg::CFG.get().get_cfg().get_initrd_env();
  12. for (k, v) in env_var {
  13. logger().debug("env", format!("export {}={}", &k, &v).as_str());
  14. std::env::set_var(k, v);
  15. }
  16. }
  17. pub fn export_env_from_cfg() {
  18. let env_var = cfg::CFG.get().get_cfg().get_env();
  19. for (k, v) in env_var {
  20. logger().debug("env", format!("export {}={}", &k, &v).as_str());
  21. std::env::set_var(k, v);
  22. }
  23. }
  24. pub fn mkdir_p_with_mode(dir: &str, mode: u32) {
  25. let mut db = DirBuilder::new();
  26. db.recursive(true);
  27. db.mode(mode);
  28. let r = db.create(dir);
  29. logger().chk_fatal(r, "mkdir", format!("failed create dir '{}'", dir).as_str());
  30. }