summaryrefslogtreecommitdiffstats
path: root/src/commands/db.rs
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2020-12-14 12:59:52 +0100
committerMatthias Beyer <mail@beyermatthias.de>2020-12-14 12:59:52 +0100
commitf88a88b7eca1eb4954685e1eb479715a68f679a5 (patch)
treeb99f90a69a5f829ee1e9f6c3a6e2152ae5d6cca5 /src/commands/db.rs
parent465d469a9934de0096c36328d8bc5f072dc8979b (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.rs88
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(())
}
}