diff options
author | Matthias Beyer <matthias.beyer@atos.net> | 2021-01-19 13:24:20 +0100 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2021-01-19 15:51:08 +0100 |
commit | 3388d715d2089bc967f4a4fcb49a6eb395d203a1 (patch) | |
tree | c1bb0d16c1f84c07e6990eb94b4fe239c7a20a20 /src/commands/db.rs | |
parent | 7654b507521997b5380e9e89ecda154dc800a4df (diff) |
Collect environment variables into comma-seperated list
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
Diffstat (limited to 'src/commands/db.rs')
-rw-r--r-- | src/commands/db.rs | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/src/commands/db.rs b/src/commands/db.rs index 0a78aa9..eb37fa8 100644 --- a/src/commands/db.rs +++ b/src/commands/db.rs @@ -300,8 +300,7 @@ fn jobs(conn_cfg: DbConnectionConfig, matches: &ArgMatches) -> Result<()> { "success", "package", "version", - "Env Name", - "Env Value", + "Env", ]); let conn = crate::db::establish_connection(conn_cfg)?; let jobs = matches @@ -364,28 +363,35 @@ fn jobs(conn_cfg: DbConnectionConfig, matches: &ArgMatches) -> Result<()> { })?; let data = jobs + .iter() + .group_by(|(job, submit, ep, package, _)| { + (job, submit, ep, package) + }); + + let data = data .into_iter() - .map(|(job, submit, ep, package, o_env)| { + .map(|((job, submit, ep, package), grouped)| { + let envs = grouped + .filter_map(|opt| opt.4.as_ref()) + .map(|tpl| format!("{}={}", tpl.1.name, tpl.1.value)) + .join(", "); + let success = crate::log::ParsedLog::build_from(&job.log_text)? .is_successfull() .map(|b| if b { "yes" } else { "no" }) .map(String::from) .unwrap_or_else(|| String::from("unknown")); - let env = o_env - .map(|tpl| (tpl.1.name, tpl.1.value)) - .unwrap_or_default(); Ok(vec![ format!("{}", job.id), submit.uuid.to_string(), job.uuid.to_string(), submit.submit_time.to_string(), - ep.name, + ep.name.clone(), success, - package.name, - package.version, - env.0, - env.1, + package.name.clone(), + package.version.clone(), + envs, ]) }) .collect::<Result<Vec<_>>>()?; |