summaryrefslogtreecommitdiffstats
path: root/xtask/src/release
diff options
context:
space:
mode:
authorToby Vincent <tobyv13@gmail.com>2023-06-22 14:39:15 -0500
committerToby Vincent <tobyv13@gmail.com>2023-07-08 11:43:16 -0500
commitd5af0a52b60efcbb832b63962b273fcc70c24ff0 (patch)
tree5b8083ac6357852b1316dd79f66da1ca57e1fcf8 /xtask/src/release
parentae8dd8c6e5c419f91b9a9ca4e270862b18c5c599 (diff)
build: fix bump read/write
Diffstat (limited to 'xtask/src/release')
-rw-r--r--xtask/src/release/bump.rs15
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)
}
}