summaryrefslogtreecommitdiffstats
path: root/xtask/src/release
diff options
context:
space:
mode:
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)
}
}