diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2020-12-03 10:53:02 +0100 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2020-12-03 10:53:04 +0100 |
commit | fdab92ede3505bf5186fd9247692082402c99e91 (patch) | |
tree | 298ee3c8bf7f4a504042f727c0f3e5db2e448b1c | |
parent | d73eda3609b9c852aa7417dc7afc63757e89dfb7 (diff) |
Also print released flag and job uuid when printing artifacts
This patch includes also a refactoring of the touched bit of code.
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r-- | src/commands/db.rs | 32 |
1 files changed, 14 insertions, 18 deletions
diff --git a/src/commands/db.rs b/src/commands/db.rs index cef6462..4c95d4b 100644 --- a/src/commands/db.rs +++ b/src/commands/db.rs @@ -133,31 +133,27 @@ fn artifacts(conn_cfg: DbConnectionConfig, matches: &ArgMatches) -> Result<()> { use crate::schema::artifacts::dsl; let csv = matches.is_present("csv"); - let hdrs = mk_header(vec!["id", "path"]); + let hdrs = mk_header(vec!["id", "path", "released", "job id"]); let conn = crate::db::establish_connection(conn_cfg)?; let data = matches.value_of("job_uuid") .map(uuid::Uuid::parse_str) .transpose()? .map(|job_uuid| -> Result<_> { - Ok({ - dsl::artifacts - .inner_join(schema::jobs::table) - .filter(schema::jobs::dsl::uuid.eq(job_uuid)) - .load::<(models::Artifact, models::Job)>(&conn)? - .into_iter() - .map(|(artifact, _)| vec![format!("{}", artifact.id), artifact.path]) - .collect::<Vec<_>>() - }) + dsl::artifacts + .inner_join(schema::jobs::table) + .filter(schema::jobs::dsl::uuid.eq(job_uuid)) + .load::<(models::Artifact, models::Job)>(&conn) + .map_err(Error::from) }) .unwrap_or_else(|| { - Ok({ - dsl::artifacts - .load::<models::Artifact>(&conn)? - .into_iter() - .map(|artifact| vec![format!("{}", artifact.id), artifact.path]) - .collect::<Vec<_>>() - }) - })?; + dsl::artifacts + .inner_join(schema::jobs::table) + .load::<(models::Artifact, models::Job)>(&conn) + .map_err(Error::from) + })? + .into_iter() + .map(|(artifact, job)| vec![format!("{}", artifact.id), artifact.path, artifact.released.to_string(), job.uuid.to_string()]) + .collect::<Vec<_>>(); if data.is_empty() { info!("No artifacts in database"); |