From 787eac91c0650ed80103060f234f69c0037cc3f0 Mon Sep 17 00:00:00 2001 From: Zoey Date: Tue, 17 Aug 2021 10:21:30 -0700 Subject: [PATCH] Don't remove everything in the build directory --- src/lib.rs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 7d71537..480f0ef 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -164,10 +164,22 @@ impl<'a> SiteBuilder<'a> { if std::fs::try_exists(&self.build_path) .context("Failed check if build directory exists")? { - std::fs::remove_dir_all(&self.build_path) - .context("Failed to remove old build directory")?; + std::fs::remove_dir_all(self.build_path.join("static")) + .context("Failed to remove static directory")?; + for entry in WalkDir::new(&self.build_path) { + let entry = entry?; + let path = entry.path(); + if let Some(ext) = path.extension() { + if ext == "html" { + std::fs::remove_file(path).with_context(|| { + format!("Failed to remove file at {}", path.display()) + })?; + } + } + } + } else { + std::fs::create_dir(&self.build_path).context("Failed to create build directory")?; } - std::fs::create_dir(&self.build_path).context("Failed to create build directory")?; for (template_name, template_path) in &self.site.template_index { self.reg