From e3f3e3b06b727312dbf5f913f17a012c73234667 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Wed, 17 Mar 2021 18:32:02 +0100 Subject: Add check whether package name or version is empty Signed-off-by: Matthias Beyer --- src/repository/repository.rs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/repository/repository.rs b/src/repository/repository.rs index f853f00..1681660 100644 --- a/src/repository/repository.rs +++ b/src/repository/repository.rs @@ -12,6 +12,7 @@ use std::collections::BTreeMap; use std::path::Path; use std::path::PathBuf; +use anyhow::anyhow; use anyhow::Context; use anyhow::Error; use anyhow::Result; @@ -165,9 +166,17 @@ impl Repository { if subdirs.is_empty() { progress.tick(); if pkg_file.is_file() { - let package = config.try_into().with_context(|| { - format!("Failed to parse {} into package", path.display()) - }); + let package = config.try_into() + .with_context(|| format!("Failed to parse {} into package", path.display())) + .and_then(|package: Package| { + if package.name().is_empty() { + Err(anyhow!("Package name cannot be empty: {}", pkg_file.display())) + } else if package.version().is_empty() { + Err(anyhow!("Package version cannot be empty: {}", pkg_file.display())) + } else { + Ok(package) + } + }); Ok(vec![package]) } else { -- cgit v1.2.3