building now clears build dir

This commit is contained in:
2025-11-25 12:51:55 -06:00
parent dfb5a2b755
commit 41c1439192
3 changed files with 17 additions and 3 deletions
+15 -1
View File
@@ -241,7 +241,7 @@ impl FleenApp {
for entry in root.join(dir).read_dir().unwrap() {
let file = PathBuf::from(entry.unwrap().file_name());
sources.push(renderer::file_render(dir.join(&file), root)?);
if root.join(&dir).join(&file).is_dir() {
if root.join(dir).join(&file).is_dir() {
// root + dir + file is a child directory, so we want to recurse...
// into dir + file.
visit_dir(&dir.join(&file), root, sources)?
@@ -254,12 +254,26 @@ impl FleenApp {
}
pub fn build_site(&self, target: &Path) -> Result<(), FleenError> {
// Ensure neither the target nor src dirs are ancestors of the other
if self.root.ancestors().any(|a| a == target) ||
target.ancestors().any(|a| a == self.root) {
return Err(TargetDir)
}
// Clear the target directory first:
for entry in fs::read_dir(target)? {
let entry = entry?;
if entry.file_type()?.is_dir() {
fs::remove_dir_all(entry.path())?
} else {
fs::remove_file(entry.path())?
}
}
// Decide which actions we need to do to build the site
let actions = self.compile()?;
// And then do them!
for action in actions.into_iter() {
action.file_operation(&self.root, target)?;
}
+1 -1
View File
@@ -5,7 +5,7 @@ mod ui_ext;
use std::path::{Path, PathBuf};
use std::time::{Duration, Instant};
use eframe::egui::{Button, Context, Direction, Id, Layout, RichText};
use eframe::egui::{Button, Context, Id, RichText};
use eframe::{egui, Frame};
use egui_ltreeview::Action;
use tokio::task::JoinHandle;
+1 -1
View File
@@ -39,7 +39,7 @@ fn serve_path(path: String, root: PathBuf) -> impl IntoResponse {
// We were pointed at the raw contents of a file:
Response::builder()
.status(200)
.body(Body::from(fs::read(root.join(file)).unwrap_or(vec![]))).unwrap()
.body(Body::from(fs::read(root.join(file)).unwrap_or_default())).unwrap()
}
Ok(RenderOutput::NoOutput) |
Ok(RenderOutput::Dir(_)) => {