From e0cb1c8f238896ed5ccaf82d414c05a87f4b918c Mon Sep 17 00:00:00 2001 From: Joscha Date: Fri, 31 Dec 2021 02:42:31 +0100 Subject: [PATCH] Don't write unchanged files --- src/files.rs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/files.rs b/src/files.rs index a8da331..0e5aded 100644 --- a/src/files.rs +++ b/src/files.rs @@ -141,7 +141,6 @@ impl Files { pub fn save(&self) -> Result<()> { for file in &self.files { if file.dirty { - println!("Saving file {:?}", file.path); Self::save_file(&file.path, &file.file)?; } } @@ -149,10 +148,16 @@ impl Files { } fn save_file(path: &Path, file: &File) -> Result<()> { - fs::write(path, &format!("{}", file)).map_err(|e| Error::WriteFile { - file: path.to_path_buf(), - error: e, - })?; + let formatted = format!("{}", file); + if file.contents == formatted { + println!("Unchanged file {:?}", path); + } else { + println!("Saving file {:?}", path); + fs::write(path, &formatted).map_err(|e| Error::WriteFile { + file: path.to_path_buf(), + error: e, + })?; + } Ok(()) }