From fc9b5bc77e4a620bcd3fc7159e0f687a15acc00d Mon Sep 17 00:00:00 2001 From: rascul Date: Tue, 27 Aug 2019 04:35:48 -0500 Subject: [PATCH] use mkdir from util module --- src/dirs.rs | 29 +++++++++++------------------ src/skel.rs | 16 ++-------------- src/util/mkdir.rs | 16 ++++++++++++++++ src/util/mod.rs | 2 ++ 4 files changed, 31 insertions(+), 32 deletions(-) create mode 100644 src/util/mkdir.rs diff --git a/src/dirs.rs b/src/dirs.rs index 0d4db82..3a6e0ed 100644 --- a/src/dirs.rs +++ b/src/dirs.rs @@ -1,8 +1,9 @@ -use std::fs::{create_dir, read_dir}; +use std::fs::read_dir; use std::path::PathBuf; use crate::config::Config; use crate::error::*; +use crate::util::mkdir; static DIRS: &[&str] = &[ "bin", "dev", "etc", "home", "lib", "lib64", "proc", "root", "run", "sbin", "sys", "tmp", @@ -43,29 +44,21 @@ fn open(dir: &PathBuf, verbose: bool) -> MkrootResult<()> { } pub fn create(config: &Config) -> MkrootResult<()> { - mkdir(&config.root_dir, config.verbose)?; + if config.verbose { + println!("Creating directory {}", &config.root_dir.display()); + } + + mkdir(&config.root_dir)?; for dir in DIRS { let mut d = PathBuf::from(&config.root_dir); d.push(&dir); - mkdir(&d, config.verbose)?; - } - Ok(()) -} - -fn mkdir(dir: &PathBuf, verbose: bool) -> MkrootResult<()> { - if !dir.exists() { - if verbose { - println!("Creating directory {}", &dir.display()); - } - if let Err(e) = create_dir(&dir) { - return Err(MkrootError::from(format!( - "Error creating directory {}: {}", - &dir.display(), - e - ))); + if config.verbose { + println!("Creating directory {}", dir); } + + mkdir(&d)?; } Ok(()) diff --git a/src/skel.rs b/src/skel.rs index 38634d6..918b1d4 100644 --- a/src/skel.rs +++ b/src/skel.rs @@ -1,10 +1,10 @@ -use std::fs::{copy as fscopy, create_dir, read_dir}; +use std::fs::{copy as fscopy, read_dir}; use std::os::unix::fs::PermissionsExt; use std::path::PathBuf; use crate::config::Config; use crate::error::*; -use crate::util::{get_perms, set_perms}; +use crate::util::{get_perms, mkdir, set_perms}; pub fn copy(config: &Config) -> MkrootResult<()> { if config.verbose { @@ -104,15 +104,3 @@ fn copy_file(src: &PathBuf, dst: &PathBuf) -> MkrootResult<()> { Ok(()) } - -fn mkdir(path: &PathBuf) -> MkrootResult<()> { - if let Err(e) = create_dir(path) { - return Err(MkrootError::from(format!( - "Error creating directory {}: {}", - path.display(), - e - ))); - } - - Ok(()) -} diff --git a/src/util/mkdir.rs b/src/util/mkdir.rs new file mode 100644 index 0000000..203cac0 --- /dev/null +++ b/src/util/mkdir.rs @@ -0,0 +1,16 @@ +use std::fs::create_dir; +use std::path::PathBuf; + +use crate::error::*; + +pub fn mkdir(dir: &PathBuf) -> MkrootResult<()> { + if let Err(e) = create_dir(&dir) { + return Err(MkrootError::from(format!( + "Error creating directory {}: {}", + &dir.display(), + e + ))); + } + + Ok(()) +} diff --git a/src/util/mod.rs b/src/util/mod.rs index 77e75e8..71d8bd5 100644 --- a/src/util/mod.rs +++ b/src/util/mod.rs @@ -1,5 +1,7 @@ mod copy_file; +mod mkdir; mod perms; pub use crate::util::copy_file::copy_file; +pub use crate::util::mkdir::mkdir; pub use crate::util::perms::*;