As discussed in the matrix channel
Right now there is only one format of logging which is very nice and human-readable, but, unfortunately, machine unreadable. This issue is set up to make it possible to set up an output format using a --format flag.
In the matrix channel several formats were proposed:
--format=pretty
This would be the default format and it would map to the current style of output that buildstream does
--format=minimal
This output format would output only the text, no formatting, no padding, no fancy unicode symbols. This format would be useful in making short pipes into bash utilities. Like
bst --format=minimal artifact list-contents my-component.bst | as-tree
--format=json
This output format would be useful in more complex tooling, such as nushell or even scripts that wrap bst, so that building tooling around bst becomes possible, like so:
#[derive(Deserialize)]
struct Message {
// potential message fields
}
fn main() {
let mut child = Command::new("bst")
.arg("--format=json")
.arg("build")
.stdout(Stdio::piped())
.stderr(Stdio::inherit())
.spawn()
.expect("failed to spawn bst");
let stdout = child.stdout.take().unwrap();
for line in BufReader::new(stdout).lines().map_while(Result::ok) {
// handling messages from bst
}
let status = child.wait().expect("bst process lost");
std::process::exit(status.code().unwrap_or(1));
}
As discussed in the matrix channel
Right now there is only one format of logging which is very nice and human-readable, but, unfortunately, machine unreadable. This issue is set up to make it possible to set up an output format using a
--formatflag.In the matrix channel several formats were proposed:
--format=prettyThis would be the default format and it would map to the current style of output that buildstream does
--format=minimalThis output format would output only the text, no formatting, no padding, no fancy unicode symbols. This format would be useful in making short pipes into bash utilities. Like
--format=jsonThis output format would be useful in more complex tooling, such as
nushellor even scripts that wrapbst, so that building tooling around bst becomes possible, like so: