Make sure toolstates.json ends in a newline

This avoids the following broken logging in CI:
```
{"book":"test-pass","reference":"test-pass","rustbook":"test-fail","rust-by-example":"test-pass","nomicon":"test-pass","embedded-book":"test-pass","edition-guide":"test-pass"}::group::Building bootstrap
```
This commit is contained in:
jyn 2023-07-09 21:03:01 -05:00
parent df5cc59a68
commit a5de56a95e

View File

@ -262,6 +262,8 @@ fn toolstates(&self) -> HashMap<Box<str>, ToolState> {
/// `rust.save-toolstates` in `config.toml`. If unspecified, nothing will be
/// done. The file is updated immediately after this function completes.
pub fn save_toolstate(&self, tool: &str, state: ToolState) {
use std::io::Write;
// If we're in a dry run setting we don't want to save toolstates as
// that means if we e.g. panic down the line it'll look like we tested
// everything (but we actually haven't).
@ -286,7 +288,8 @@ pub fn save_toolstate(&self, tool: &str, state: ToolState) {
current_toolstates.insert(tool.into(), state);
t!(file.seek(SeekFrom::Start(0)));
t!(file.set_len(0));
t!(serde_json::to_writer(file, &current_toolstates));
t!(serde_json::to_writer(&file, &current_toolstates));
t!(writeln!(file)); // make sure this ends in a newline
}
}
}