From 7ebedc8faf1b924e92f699b4385517ed4177f79f Mon Sep 17 00:00:00 2001 From: steven-omaha <35634100+steven-omaha@users.noreply.github.com> Date: Fri, 2 Dec 2022 18:06:47 +0100 Subject: [PATCH] propagate errors --- src/group.rs | 16 +++++++++------- src/main.rs | 3 +-- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/group.rs b/src/group.rs index c3ee993..74df465 100644 --- a/src/group.rs +++ b/src/group.rs @@ -3,6 +3,8 @@ use std::fs::File; use std::hash::Hash; use std::io::{BufRead, BufReader}; +use anyhow::{anyhow, Context, Result}; + use crate::Package; #[derive(Debug)] @@ -12,22 +14,22 @@ pub struct Group { } impl Group { - pub fn load_from_dir() -> HashSet { + pub fn load_from_dir() -> Result> { let mut result = HashSet::new(); - let path = crate::path::get_pacdef_group_dir().unwrap(); - for entry in path.read_dir().unwrap() { - let file = entry.unwrap(); + let path = crate::path::get_pacdef_group_dir().context("getting pacdef group dir")?; + for entry in path.read_dir().context("reading group dir")? { + let file = entry.context("getting a file")?; let name = file.file_name(); - let f = File::open(file.path()).unwrap(); + let f = File::open(file.path()).context("reading the file")?; let reader = BufReader::new(f); let packages = Package::from_lines(reader.lines()); result.insert(Group { - name: name.into_string().unwrap(), + name: name.into_string().map_err(|e| anyhow!(e))?, packages, }); } - result + Ok(result) } } diff --git a/src/main.rs b/src/main.rs index bfbf1d9..959b2e5 100644 --- a/src/main.rs +++ b/src/main.rs @@ -6,6 +6,5 @@ fn main() -> Result<()> { let args = args::get_args(); let groups = Group::load_from_dir(); let pacdef = Pacdef::new(args, groups); - pacdef.run_action_from_arg().context("running action")?; - Ok(()) + pacdef.run_action_from_arg().context("running action") }