From 74631f8675f587d25d5338de0b50754e86ff8c96 Mon Sep 17 00:00:00 2001 From: Ash Svitan Date: Thu, 30 Apr 2026 15:34:39 +0200 Subject: [PATCH] :hammer: Refactors panics to error returning Signed-off-by: Ash Svitan --- src/main.rs | 4 ++-- src/pass.rs | 20 ++++++++++++++++---- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/main.rs b/src/main.rs index ed4ccee..7e5e58b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -11,7 +11,7 @@ fn main() -> Result<(), Error> { pass::check_pass()?; rbw::check_rbw()?; - let vaults = pass::get_vaults().vaults; + let vaults = pass::get_vaults()?.vaults; if vaults.len() <= 0 { return Err(Error::new(ErrorKind::Other, "No vaults found")); } @@ -41,7 +41,7 @@ fn main() -> Result<(), Error> { } }; - let items = pass::get_items(&vault).items; + let items = pass::get_items(&vault)?.items; println!("{:?}", items[0]); println!("{}", items.len()); diff --git a/src/pass.rs b/src/pass.rs index b473827..c02c454 100644 --- a/src/pass.rs +++ b/src/pass.rs @@ -74,12 +74,24 @@ pub fn check_pass() -> Result<(), Error> { return Ok(()); } -pub fn get_vaults() -> Vaults { +pub fn get_vaults() -> Result { let vaults_raw = sh::sh(format!("{} vault list --output json", EXECUTABLE)); - return serde_json::from_str(vaults_raw.as_str()).expect("Couldn't parse JSON"); + return match serde_json::from_str(vaults_raw.as_str()) { + Ok(val) => Ok(val), + Err(e) => Err(Error::new( + ErrorKind::Other, + format!("Couldn't get vaults: {e}"), + )), + }; } -pub fn get_items(vault: &String) -> Items { +pub fn get_items(vault: &String) -> Result { let items_raw = sh::sh(format!("{} item list {} --output json", EXECUTABLE, vault)); - return serde_json::from_str(items_raw.as_str()).expect("Couldn't parse JSON"); + return match serde_json::from_str(items_raw.as_str()) { + Ok(val) => Ok(val), + Err(e) => Err(Error::new( + ErrorKind::Other, + format!("Couldn't get items: {e}"), + )), + }; }