🔨 Refactors panics to error returning

Signed-off-by: Ash Svitan <selfsigned-ash@proton.me>
This commit is contained in:
2026-04-30 15:34:39 +02:00
parent 0430ff2bd2
commit 74631f8675
2 changed files with 18 additions and 6 deletions
+2 -2
View File
@@ -11,7 +11,7 @@ fn main() -> Result<(), Error> {
pass::check_pass()?; pass::check_pass()?;
rbw::check_rbw()?; rbw::check_rbw()?;
let vaults = pass::get_vaults().vaults; let vaults = pass::get_vaults()?.vaults;
if vaults.len() <= 0 { if vaults.len() <= 0 {
return Err(Error::new(ErrorKind::Other, "No vaults found")); 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[0]);
println!("{}", items.len()); println!("{}", items.len());
+16 -4
View File
@@ -74,12 +74,24 @@ pub fn check_pass() -> Result<(), Error> {
return Ok(()); return Ok(());
} }
pub fn get_vaults() -> Vaults { pub fn get_vaults() -> Result<Vaults, Error> {
let vaults_raw = sh::sh(format!("{} vault list --output json", EXECUTABLE)); 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<Items, Error> {
let items_raw = sh::sh(format!("{} item list {} --output json", EXECUTABLE, vault)); 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}"),
)),
};
} }