diff options
author | Matthias Beyer <matthias.beyer@atos.net> | 2021-06-02 13:03:25 +0200 |
---|---|---|
committer | Matthias Beyer <matthias.beyer@atos.net> | 2021-06-02 13:17:59 +0200 |
commit | 1e77f45fc8649b3fbb9e17bd6a5e262617abcc33 (patch) | |
tree | c85429100c81c5661194d7764a5b13c78217fb91 | |
parent | 8cd7b44501d2843cfb2d9307ae2b83db15092028 (diff) |
Subcommand "db releases" add date filter
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
-rw-r--r-- | src/cli.rs | 3 | ||||
-rw-r--r-- | src/commands/db.rs | 13 |
2 files changed, 15 insertions, 1 deletions
@@ -362,6 +362,9 @@ pub fn cli<'a>() -> App<'a> { .takes_value(false) .about("Format output as CSV") ) + + .arg(arg_older_than_date("List only releases older than DATE")) + .arg(arg_newer_than_date("List only releases newer than DATE")) ) ) diff --git a/src/commands/db.rs b/src/commands/db.rs index ac3b53f..24450f7 100644 --- a/src/commands/db.rs +++ b/src/commands/db.rs @@ -691,7 +691,7 @@ fn releases(conn_cfg: DbConnectionConfig<'_>, config: &Configuration, matches: & let csv = matches.is_present("csv"); let conn = conn_cfg.establish_connection()?; let header = crate::commands::util::mk_header(["Package", "Version", "Date", "Path"].to_vec()); - let data = schema::jobs::table + let mut query = schema::jobs::table .inner_join(schema::packages::table) .inner_join(schema::artifacts::table) .inner_join(schema::releases::table @@ -701,6 +701,17 @@ fn releases(conn_cfg: DbConnectionConfig<'_>, config: &Configuration, matches: & .order_by(schema::packages::dsl::name.asc()) .then_order_by(schema::packages::dsl::version.asc()) .then_order_by(schema::releases::release_date.asc()) + .into_boxed(); + + if let Some(date) = crate::commands::util::get_date_filter("older_than", matches)? { + query = query.filter(schema::releases::release_date.lt(date)); + } + + if let Some(date) = crate::commands::util::get_date_filter("newer_than", matches)? { + query = query.filter(schema::releases::release_date.gt(date)); + } + + let data = query .select({ let art = schema::artifacts::all_columns; let pac = schema::packages::all_columns; |