diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2020-11-16 17:15:19 +0100 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2020-11-16 18:01:37 +0100 |
commit | d3e6b193be2c15a6d1a53de5a1f859456f8f6fe7 (patch) | |
tree | 9077691a907bf8980d7361a64533dd52e90b735d /src | |
parent | 58e91bea992ba400e2559a4a5cbf7200a01c7c90 (diff) |
Show environment variables when showing job from DB
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Diffstat (limited to 'src')
-rw-r--r-- | src/cli.rs | 8 | ||||
-rw-r--r-- | src/commands/db.rs | 21 |
2 files changed, 29 insertions, 0 deletions
@@ -185,6 +185,14 @@ pub fn cli<'a>() -> App<'a> { .help("Show the script") ) + .arg(Arg::with_name("show_env") + .required(false) + .multiple(false) + .long("env") + .short('E') + .help("Show the environment of the job") + ) + .arg(Arg::with_name("script_disable_highlighting") .required(false) .multiple(false) diff --git a/src/commands/db.rs b/src/commands/db.rs index b788f71..c3c8e58 100644 --- a/src/commands/db.rs +++ b/src/commands/db.rs @@ -8,6 +8,7 @@ use anyhow::Error; use anyhow::Result; use anyhow::anyhow; use clap::ArgMatches; +use diesel::BelongingToDsl; use diesel::ExpressionMethods; use diesel::JoinOnDsl; use diesel::QueryDsl; @@ -292,6 +293,21 @@ fn job<'a>(conn_cfg: DbConnectionConfig, config: &Configuration<'a>, matches: &A .inner_join(schema::images::table) .first::<(models::Job, models::Submit, models::Endpoint, models::Package, models::Image)>(&conn)?; + let env_vars = if matches.is_present("show_env") { + Some({ + models::JobEnv::belonging_to(&data.0) + .inner_join(schema::envvars::table) + .load::<(models::JobEnv, models::EnvVar)>(&conn)? + .into_iter() + .map(|tpl| tpl.1) + .enumerate() + .map(|(i, env)| format!("\t{:>3}. {}={}", i, env.name, env.value)) + .join("\n") + }) + } else { + None + }; + let parsed_log = crate::log::ParsedLog::build_from(&data.0.log_text)?; let success = parsed_log.is_successfull(); let s = indoc::formatdoc!(r#" @@ -308,6 +324,10 @@ fn job<'a>(conn_cfg: DbConnectionConfig, config: &Configuration<'a>, matches: &A --- + {envs} + + --- + {script_text} --- @@ -333,6 +353,7 @@ fn job<'a>(conn_cfg: DbConnectionConfig, config: &Configuration<'a>, matches: &A container_hash = data.0.container_hash.cyan(), script_len = format!("{:<4}", data.0.script_text.lines().count()).cyan(), log_len = format!("{:<4}", data.0.log_text.lines().count()).cyan(), + envs = env_vars.unwrap_or_else(|| String::from("<env vars hidden>")), script_text = if show_script { if let Some(configured_theme) = configured_theme { if highlighting_disabled { |