diff options
author | Matthias Beyer <matthias.beyer@atos.net> | 2021-03-17 18:32:02 +0100 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2021-03-17 18:47:15 +0100 |
commit | e3f3e3b06b727312dbf5f913f17a012c73234667 (patch) | |
tree | bcaecd277c46e38c9c2e5b59efa3d9a82dfa7020 /src | |
parent | c2e47fe2a0087c2643f78f152abf968b5c7319b4 (diff) |
Add check whether package name or version is empty
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
Diffstat (limited to 'src')
-rw-r--r-- | src/repository/repository.rs | 15 |
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 { |