From 392f6825df50308e9f40d677e96e9d1aecb65fb4 Mon Sep 17 00:00:00 2001 From: Michal S Date: Sat, 10 Sep 2022 22:09:57 +0100 Subject: [PATCH] Fix sed issue for good!!! (Not for evil) --- src/internal/files.rs | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/src/internal/files.rs b/src/internal/files.rs index c14389f..6b64484 100755 --- a/src/internal/files.rs +++ b/src/internal/files.rs @@ -1,5 +1,5 @@ use crate::internal::*; -use std::fs::{File, OpenOptions, read_to_string}; +use std::fs::{self, File, OpenOptions}; use std::io::prelude::*; pub fn create_file(path: &str) { @@ -38,15 +38,10 @@ pub fn append_file(path: &str, content: &str) -> std::io::Result<()> { pub fn sed_file(path: &str, find: &str, replace: &str) -> std::io::Result<()> { log::info!("Sed '{}' to '{}' in file {}", find, replace, path); - - let mut file = OpenOptions::new().read(true).write(true).open(path)?; - - let contents = read_to_string(path)?; - let contents = contents.replace(find, replace); - - file.set_len(0)?; - file.write_all(contents.as_bytes())?; - + let contents = fs::read_to_string(path)?; + let new_contents = contents.replace(find, replace); + let mut file = OpenOptions::new().write(true).truncate(true).open(path)?; + file.write_all(new_contents.as_bytes())?; Ok(()) }