summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Beyer <matthias.beyer@atos.net>2021-06-07 15:56:35 +0200
committerMatthias Beyer <matthias.beyer@atos.net>2021-06-07 15:56:35 +0200
commitdd8c3cb7b59ba2bac1ebf83694a50e3ef210f7fd (patch)
treec325df92c5de4b20cc9dfd8b5c1521feed53bc02
parentc0609a050da45bdb93fbb5f2ad28055e1343c08f (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>
-rw-r--r--src/cli.rs19
-rw-r--r--src/commands/db.rs26
2 files changed, 1 insertions, 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);