diff --git a/core/src/system.rs b/core/src/system.rs index 0a506f0..dabab16 100644 --- a/core/src/system.rs +++ b/core/src/system.rs @@ -112,18 +112,21 @@ pub fn get_packages( if result.is_empty() { return None; } - let packages: Vec = result + let packages: Option> = result .lines() .map(|line| { - line.split_whitespace() - .next() - .unwrap() - .rsplit_once('.') - .unwrap() - .0 - .to_string() + let package = line.split_whitespace().next()?; + Some(package.rsplit_once('.')?.0.to_string()) }) .collect(); + let Some(packages) = packages else { + eprintln!( + "Unexpected output from nix-index:\n {}", + result.replace("\n", "\n ") + ); + return None; + }; + if packages.is_empty() { None } else {