diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2020-12-14 12:59:52 +0100 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2020-12-14 12:59:52 +0100 |
commit | f88a88b7eca1eb4954685e1eb479715a68f679a5 (patch) | |
tree | b99f90a69a5f829ee1e9f6c3a6e2152ae5d6cca5 /src/commands/db.rs | |
parent | 465d469a9934de0096c36328d8bc5f072dc8979b (diff) |
Do not print "hidden" strings, but only print env/script/log when asked
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Diffstat (limited to 'src/commands/db.rs')
-rw-r--r-- | src/commands/db.rs | 88 |
1 files changed, 51 insertions, 37 deletions
diff --git a/src/commands/db.rs b/src/commands/db.rs index c4a9d5d..0f431f8 100644 --- a/src/commands/db.rs +++ b/src/commands/db.rs @@ -342,6 +342,7 @@ fn job(conn_cfg: DbConnectionConfig, config: &Configuration, matches: &ArgMatche None }; + let mut out = std::io::stdout(); let s = indoc::formatdoc!(r#" Job: {job_uuid} Submit: {submit_uuid} @@ -355,17 +356,6 @@ fn job(conn_cfg: DbConnectionConfig, config: &Configuration, matches: &ArgMatche Script: {script_len} lines Log: {log_len} lines - --- - - {envs} - - --- - - {script_text} - - --- - - {log_text} "#, job_uuid = match success { @@ -388,34 +378,58 @@ fn job(conn_cfg: DbConnectionConfig, config: &Configuration, matches: &ArgMatche 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 { - let theme = configured_theme - .as_ref() - .ok_or_else(|| anyhow!("Highlighting for script enabled, but no theme configured"))?; - let script = Script::from(data.0.script_text); - crate::ui::script_to_printable(&script, script_highlight, theme, script_line_numbers)? - } else { - String::from("<script hidden>") - }, - log_text = if show_log { - parsed_log.iter() - .map(|line_item| match line_item { - LogItem::Line(s) => Ok(String::from_utf8(s.to_vec())?.normal()), - LogItem::Progress(u) => Ok(format!("#BUTIDO:PROGRESS:{}", u).bright_black()), - LogItem::CurrentPhase(p) => Ok(format!("#BUTIDO:PHASE:{}", p).bright_black()), - LogItem::State(Ok(())) => Ok(format!("#BUTIDO:STATE:OK").green()), - LogItem::State(Err(s)) => Ok(format!("#BUTIDO:STATE:ERR:{}", s).red()), - }) - .collect::<Result<Vec<_>>>()? - .into_iter() // ugly, but hey... not important right now. - .join("\n") - } else { - String::from("<log hidden>") - }, ); + let _ = writeln!(out, "{}", s)?; + + if let Some(envs) = env_vars { + let s = indoc::formatdoc!(r#" + --- + + {envs} + + "#, envs = envs); + let _ = writeln!(out, "{}", s)?; + } + + if show_script { + let theme = configured_theme + .as_ref() + .ok_or_else(|| anyhow!("Highlighting for script enabled, but no theme configured"))?; + let script = Script::from(data.0.script_text); + let script = crate::ui::script_to_printable(&script, script_highlight, theme, script_line_numbers)?; + + let s = indoc::formatdoc!(r#" + --- + + {script} + + "#, script = script); + let _ = writeln!(out, "{}", s)?; + } + + if show_log { + let log = parsed_log.iter() + .map(|line_item| match line_item { + LogItem::Line(s) => Ok(String::from_utf8(s.to_vec())?.normal()), + LogItem::Progress(u) => Ok(format!("#BUTIDO:PROGRESS:{}", u).bright_black()), + LogItem::CurrentPhase(p) => Ok(format!("#BUTIDO:PHASE:{}", p).bright_black()), + LogItem::State(Ok(())) => Ok(format!("#BUTIDO:STATE:OK").green()), + LogItem::State(Err(s)) => Ok(format!("#BUTIDO:STATE:ERR:{}", s).red()), + }) + .collect::<Result<Vec<_>>>()? + .into_iter() // ugly, but hey... not important right now. + .join("\n"); + + let s = indoc::formatdoc!(r#" + --- + + {log} + + "#, log = log); + let _ = writeln!(out, "{}", s)?; + } - writeln!(&mut std::io::stdout(), "{}", s).map_err(Error::from) + Ok(()) } } |