diff options
author | Toby Vincent <tobyv13@gmail.com> | 2023-06-22 14:39:15 -0500 |
---|---|---|
committer | Toby Vincent <tobyv13@gmail.com> | 2023-07-08 11:43:16 -0500 |
commit | d5af0a52b60efcbb832b63962b273fcc70c24ff0 (patch) | |
tree | 5b8083ac6357852b1316dd79f66da1ca57e1fcf8 /xtask/src/release | |
parent | ae8dd8c6e5c419f91b9a9ca4e270862b18c5c599 (diff) |
build: fix bump read/write
Diffstat (limited to 'xtask/src/release')
-rw-r--r-- | xtask/src/release/bump.rs | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/xtask/src/release/bump.rs b/xtask/src/release/bump.rs index 617cfd6..7a817e7 100644 --- a/xtask/src/release/bump.rs +++ b/xtask/src/release/bump.rs @@ -1,7 +1,7 @@ use std::{ fmt::Display, fs::File, - io::{Read, Write}, + io::{BufRead, BufReader, BufWriter, Read, Write}, path::Path, process::Command, str::FromStr, @@ -83,9 +83,10 @@ impl Bump { path.display() ); - let file = File::open(path)?; + let reader = File::options().read(true).open(path)?; + let writer = File::options().write(true).open(path)?; - self.bump(&file, &file, mutator)?; + self.bump(reader, writer, mutator)?; let git_added = Command::new("git").arg("add").arg(path).status()?; @@ -94,18 +95,22 @@ impl Bump { Ok(()) } - fn bump<R, W, F>(&self, mut reader: R, mut writer: W, mutator: F) -> Result<()> + fn bump<R, W, F>(&self, reader: R, writer: W, mutator: F) -> Result<()> where R: Read, W: Write, F: Fn(String, &Self) -> Result<String>, { + let mut reader = BufReader::new(reader); + let mut writer = BufWriter::new(writer); let mut buf = String::new(); + reader.read_to_string(&mut buf)?; let buf = mutator(buf, self)?; - writer.write_all(buf.as_bytes()).map_err(Into::into) + writer.write_all(buf.as_bytes())?; + writer.flush().map_err(Into::into) } } |