diff options
author | Matthias Beyer <matthias.beyer@atos.net> | 2021-06-07 15:56:35 +0200 |
---|---|---|
committer | Matthias Beyer <matthias.beyer@atos.net> | 2021-06-07 15:56:35 +0200 |
commit | dd8c3cb7b59ba2bac1ebf83694a50e3ef210f7fd (patch) | |
tree | c325df92c5de4b20cc9dfd8b5c1521feed53bc02 /src/commands/db.rs | |
parent | c0609a050da45bdb93fbb5f2ad28055e1343c08f (diff) |
Revert "Add support for filtering releases by package name and version"
Filtering the releases from the database should not be done via a regex in the
application code. Rationale is that filtering with a regex is only wanted if the
user _searches_ for something. In this instance, the user is expected to know
already what they want to see, so this is not a _search_, but a _filtering_.
Hence, we rather implement the filtering via an appropriate database query
instead of loading all releases and then filtering by regex.
This reverts commit b665c7cd4aa4ea900dc194a6ba5ad9de527f978c.
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
Diffstat (limited to 'src/commands/db.rs')
-rw-r--r-- | src/commands/db.rs | 26 |
1 files changed, 1 insertions, 25 deletions
diff --git a/src/commands/db.rs b/src/commands/db.rs index ae2ba13..bf4337c 100644 --- a/src/commands/db.rs +++ b/src/commands/db.rs @@ -14,7 +14,6 @@ use std::io::Write; use std::path::PathBuf; use std::process::Command; use std::str::FromStr; -use std::convert::TryFrom; use anyhow::Context; use anyhow::Error; @@ -34,11 +33,9 @@ use log::trace; use crate::commands::util::get_date_filter; use crate::config::Configuration; -use crate::db::DbConnectionConfig; use crate::db::models; +use crate::db::DbConnectionConfig; use crate::log::JobResult; -use crate::package::PackageVersion; -use crate::package::PackageVersionConstraint; use crate::package::Script; use crate::schema; @@ -719,17 +716,6 @@ fn releases(conn_cfg: DbConnectionConfig<'_>, config: &Configuration, matches: & query = query.filter(schema::releases::release_date.gt(date)); } - let package_name_regex_filter = matches.value_of("package_name_regex") - .map(crate::commands::util::mk_package_name_regex) - .transpose() - .context("Constructing package name regex")?; - - let package_version_filter = matches.value_of("package_version_constraint") - .map(PackageVersionConstraint::try_from) - .transpose() - .context("Parsing package version constraint") - .context("A valid package version constraint looks like this: '=1.0.0'")?; - if let Some(store) = matches.value_of("store") { query = query.filter(schema::release_stores::dsl::store_name.eq(store)); } @@ -744,16 +730,6 @@ fn releases(conn_cfg: DbConnectionConfig<'_>, config: &Configuration, matches: & }) .load::<(models::Artifact, models::Package, models::Release, models::ReleaseStore)>(&conn)? .into_iter() - .filter(|(_, package, _, _)| { - package_name_regex_filter.as_ref() - .map(|regex| regex.captures(&package.name).is_some()) - .unwrap_or(true) - }) - .filter(|(_, package, _, _)| { - package_version_filter.as_ref() - .map(|verf| verf.matches(&PackageVersion::from(package.version.clone()))) - .unwrap_or(true) - }) .filter_map(|(art, pack, rel, rstore)| { let p = config.releases_directory().join(rstore.store_name).join(&art.path); |