diff options
author | Matthias Beyer <matthias.beyer@atos.net> | 2021-08-17 12:22:03 +0200 |
---|---|---|
committer | Matthias Beyer <matthias.beyer@atos.net> | 2021-08-17 12:22:03 +0200 |
commit | ac92817aba18c2fd204bee17ce317c7517f7d189 (patch) | |
tree | 0356e84f134965c249f876d3f6cedf8c864e8976 /src/commands | |
parent | 8466ab659f3461430bbf09d26a863b35a6492889 (diff) | |
parent | 524fd6ca6f1ec8827c4c45177c709c3261ad47c5 (diff) |
Merge branch 'verify-multi'
Diffstat (limited to 'src/commands')
-rw-r--r-- | src/commands/source.rs | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/src/commands/source.rs b/src/commands/source.rs index df3217f..473169a 100644 --- a/src/commands/source.rs +++ b/src/commands/source.rs @@ -66,14 +66,23 @@ pub async fn verify( .map(PackageVersionConstraint::try_from) .transpose()?; + let matching_regexp = matches.value_of("matching") + .map(crate::commands::util::mk_package_name_regex) + .transpose()?; + let packages = repo .packages() - .filter(|p| pname.as_ref().map(|n| p.name() == n).unwrap_or(true)) .filter(|p| { - pvers - .as_ref() - .map(|v| v.matches(p.version())) - .unwrap_or(true) + match (pname.as_ref(), pvers.as_ref(), matching_regexp.as_ref()) { + (None, None, None) => true, + (Some(pname), None, None) => p.name() == pname, + (Some(pname), Some(vers), None) => p.name() == pname && vers.matches(p.version()), + (None, None, Some(regex)) => regex.is_match(p.name()), + + (_, _, _) => { + panic!("This should not be possible, either we select packages by name and (optionally) version, or by regex.") + }, + } }) .inspect(|p| trace!("Found for verification: {} {}", p.name(), p.version())); |