Skip to content

Commit

Permalink
Match file extensions against blacklist to avoid multiple rebuilds tr…
Browse files Browse the repository at this point in the history
…iggered by temporary files
  • Loading branch information
mxdamien committed Jan 19, 2022
1 parent f352fb3 commit 8102e4a
Showing 1 changed file with 33 additions and 21 deletions.
54 changes: 33 additions & 21 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ mod mesh;
mod model;
mod window;

use std::collections::HashSet;
use std::ffi::OsStr;
use std::{collections::HashMap, sync::mpsc, time::Instant};

use futures::executor::block_on;
Expand Down Expand Up @@ -139,27 +141,37 @@ fn main() -> anyhow::Result<()> {
notify::event::DataChange::Content,
)) = event.kind
{
let shape = match model.load(&parameters) {
Ok(shape) => shape,
Err(model::Error::Compile) => {
// It would be better to display an error in the UI,
// where the user can actually see it. Issue:
// https://github.com/hannobraun/fornjot/issues/30
println!("Error compiling model");
return;
}
Err(err) => {
panic!("Error reloading model: {:?}", err);
}
};

// This will panic, if the other end is disconnected, which is
// probably the result of a panic on that thread, or the
// application is being shut down.
//
// Either way, not much we can do about it here, except maybe to
// provide a better error message in the future.
watcher_tx.send(shape).unwrap();
let file_ext = event
.paths
.get(0)
.expect("File path missing in watch event")
.extension();

let black_list = HashSet::from([
OsStr::new("swp"),
OsStr::new("tmp"),
OsStr::new("swx"),
]);

if (file_ext.is_some()
&& black_list.get(file_ext.unwrap()).is_none())
| file_ext.is_none()
{
let shape = match model.load(&parameters) {
Ok(shape) => shape,
Err(model::Error::Compile) => {
// It would be better to display an error in the UI,
// where the user can actually see it. Issue:
// https://github.com/hannobraun/fornjot/issues/30
println!("Error compiling model");
return;
}
Err(err) => {
panic!("Error reloading model: {:?}", err);
}
};
watcher_tx.send(shape).unwrap();
}
}
},
)?;
Expand Down

0 comments on commit 8102e4a

Please sign in to comment.