From d5af0a52b60efcbb832b63962b273fcc70c24ff0 Mon Sep 17 00:00:00 2001 From: Toby Vincent Date: Thu, 22 Jun 2023 14:39:15 -0500 Subject: build: fix bump read/write --- xtask/src/release/bump.rs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'xtask/src/release') 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(&self, mut reader: R, mut writer: W, mutator: F) -> Result<()> + fn bump(&self, reader: R, writer: W, mutator: F) -> Result<()> where R: Read, W: Write, F: Fn(String, &Self) -> Result, { + 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) } } -- cgit v1.2.3-70-g09d2