diff --git a/src/files/mkroot_files.rs b/src/files/mkroot_files.rs index 5a79d31..4f049d3 100644 --- a/src/files/mkroot_files.rs +++ b/src/files/mkroot_files.rs @@ -1,4 +1,4 @@ -use std::fs::{copy as fscopy, metadata, set_permissions, File}; +use std::fs::{copy as fscopy, File, Permissions}; use std::os::unix::fs::PermissionsExt; use std::path::PathBuf; use std::process::Command; @@ -7,6 +7,7 @@ use regex::Regex; use crate::config::Config; use crate::error::*; +use crate::util::set_perms; pub struct Files { pub bins: Vec, @@ -191,28 +192,7 @@ impl Files { println!("Setting linker {} to mode 0o755", &lib.display()); } - match metadata(&lib) { - Ok(meta) => { - let mut perms = meta.permissions(); - perms.set_mode(0o755); - if let Err(e) = set_permissions(&lib, perms) { - return Err(MkrootError::from(format!( - "Error setting permissions {}: {}", - &lib.display(), - e - ))); - } else { - return Ok(()); - } - } - Err(e) => { - return Err(MkrootError::from(format!( - "Error reading metadata {}: {}", - &lib.display(), - e - ))) - } - } + set_perms(&lib, Permissions::from_mode(0o755))?; } } } @@ -244,9 +224,7 @@ impl Files { e ))); } else { - let mut perms = metadata(&t)?.permissions(); - perms.set_mode(mode); - set_permissions(&t, perms)?; + set_perms(&t, Permissions::from_mode(mode))?; } } else if verbose { println!("Skipping {}", &f.display());