Don't write unchanged files

This commit is contained in:
Joscha 2021-12-31 02:42:31 +01:00
parent e01de41925
commit e0cb1c8f23

View file

@ -141,7 +141,6 @@ impl Files {
pub fn save(&self) -> Result<()> { pub fn save(&self) -> Result<()> {
for file in &self.files { for file in &self.files {
if file.dirty { if file.dirty {
println!("Saving file {:?}", file.path);
Self::save_file(&file.path, &file.file)?; Self::save_file(&file.path, &file.file)?;
} }
} }
@ -149,10 +148,16 @@ impl Files {
} }
fn save_file(path: &Path, file: &File) -> Result<()> { fn save_file(path: &Path, file: &File) -> Result<()> {
fs::write(path, &format!("{}", file)).map_err(|e| Error::WriteFile { 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(), file: path.to_path_buf(),
error: e, error: e,
})?; })?;
}
Ok(()) Ok(())
} }