|
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