From dd8c3cb7b59ba2bac1ebf83694a50e3ef210f7fd Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Mon, 7 Jun 2021 15:56:35 +0200 Subject: 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 --- src/cli.rs | 19 ------------------- src/commands/db.rs | 26 +------------------------- 2 files changed, 1 insertion(+), 44 deletions(-) diff --git a/src/cli.rs b/src/cli.rs index 6546b0f..119379a 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -390,25 +390,6 @@ pub fn cli<'a>() -> App<'a> { .arg(arg_older_than_date("List only releases older than DATE")) .arg(arg_newer_than_date("List only releases newer than DATE")) - .arg(Arg::new("package_name_regex") - .required(false) - .multiple(false) - .long("pkg") - .short('p') - .takes_value(true) - .value_name("REGEX") - .about("Limit search with package name matching REGEX") - ) - .arg(Arg::new("package_version_constraint") - .required(false) - .multiple(false) - .long("version") - .short('v') - .takes_value(true) - .value_name("VERSION_CONSTRAINT") - .about("Limit search for package in version VERSION") - ) - .arg(Arg::new("store") .required(false) .multiple(false) 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); -- cgit v1.2.3