summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Beyer <matthias.beyer@atos.net>2021-03-17 18:32:02 +0100
committerMatthias Beyer <mail@beyermatthias.de>2021-03-17 18:47:15 +0100
commite3f3e3b06b727312dbf5f913f17a012c73234667 (patch)
treebcaecd277c46e38c9c2e5b59efa3d9a82dfa7020
parentc2e47fe2a0087c2643f78f152abf968b5c7319b4 (diff)
Add check whether package name or version is empty
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
-rw-r--r--src/repository/repository.rs15
1 files 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 {