From e22b56db455e7a341ed4ca4180c6757a3d236e41 Mon Sep 17 00:00:00 2001 From: rascul Date: Sat, 24 Aug 2019 21:55:59 -0500 Subject: [PATCH] handle errors better --- src/files/os_release.rs | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/src/files/os_release.rs b/src/files/os_release.rs index 757565b..6baac57 100644 --- a/src/files/os_release.rs +++ b/src/files/os_release.rs @@ -4,7 +4,7 @@ use std::os::unix::fs::PermissionsExt; use std::path::PathBuf; use crate::config::Config; -use crate::error::MkrootResult; +use crate::error::{MkrootError, MkrootResult}; pub fn os_release(config: &Config) -> MkrootResult<()> { let mut path = PathBuf::from(&config.root_dir); @@ -23,9 +23,30 @@ pub fn os_release(config: &Config) -> MkrootResult<()> { ))?; } - let mut perms = metadata(&path)?.permissions(); + match metadata(&path) { + Ok(meta) => { + let mut perms = meta.permissions(); + perms.set_mode(0o755); + if let Err(e) = set_permissions(&path, perms) { + return Err(MkrootError::from(format!( + "Error setting permissions {}: {}", + &path.display(), + e + ))); + } + } + Err(e) => { + return Err(MkrootError::from(format!( + "Error reading metadata {}: {}", + &path.display(), + e + ))) + } + } + + /*let mut perms = metadata(&path)?.permissions(); perms.set_mode(0o644); - set_permissions(&path, perms)?; + set_permissions(&path, perms)?;*/ Ok(()) }