|
1 |
| -use std::collections::BTreeMap; |
| 1 | +use std::{collections::BTreeMap, io::IsTerminal}; |
2 | 2 |
|
3 |
| -use serde::{Serialize, ser::SerializeSeq}; |
4 | 3 | use snafu::{ResultExt, Snafu};
|
5 | 4 |
|
6 | 5 | use crate::{
|
7 | 6 | build::bakefile::{Targets, TargetsError, TargetsOptions},
|
8 |
| - show::images::cli::ShowImagesArguments, |
| 7 | + show::images::cli::{Pretty, ShowImagesArguments}, |
9 | 8 | };
|
10 | 9 |
|
11 | 10 | pub mod cli;
|
@@ -66,14 +65,14 @@ pub fn run_command(arguments: ShowImagesArguments) -> Result<(), Error> {
|
66 | 65 | print_to_stdout(list, arguments.pretty)
|
67 | 66 | }
|
68 | 67 |
|
69 |
| -fn print_to_stdout(list: BTreeMap<String, Vec<String>>, pretty: bool) -> Result<(), Error> { |
| 68 | +fn print_to_stdout(list: BTreeMap<String, Vec<String>>, pretty: Pretty) -> Result<(), Error> { |
70 | 69 | let stdout = std::io::stdout();
|
71 | 70 |
|
72 |
| - let list = OneOrMany(list); |
73 |
| - |
74 |
| - if pretty { |
75 |
| - serde_json::to_writer_pretty(stdout, &list).context(SerializeListSnafu) |
76 |
| - } else { |
77 |
| - serde_json::to_writer(stdout, &list).context(SerializeListSnafu) |
| 71 | + match pretty { |
| 72 | + Pretty::Always | Pretty::Auto if stdout.is_terminal() => { |
| 73 | + serde_json::to_writer_pretty(stdout, &list) |
| 74 | + } |
| 75 | + _ => serde_json::to_writer(stdout, &list), |
78 | 76 | }
|
| 77 | + .context(SerializeListSnafu) |
79 | 78 | }
|
0 commit comments