fix: Run hot-reloading only on modify events

This commit is contained in:
elkowar 2021-08-23 10:06:28 +02:00
parent 77055b80e7
commit 17750289a5
No known key found for this signature in database
GPG key ID: E321AD71B1D1F27F
2 changed files with 8 additions and 4 deletions

View file

@ -174,7 +174,7 @@ impl App {
sender.send_success(output)? sender.send_success(output)?
} }
DaemonCommand::PrintDebug(sender) => { DaemonCommand::PrintDebug(sender) => {
let output = format!("state: {:#?}\n\nconfig: {:#?}", &self.eww_state, &self.eww_config); let output = format!("{:#?}", &self);
sender.send_success(output)? sender.send_success(output)?
} }
} }
@ -268,6 +268,9 @@ impl App {
// refresh script-var poll stuff // refresh script-var poll stuff
self.script_var_handler.stop_all(); self.script_var_handler.stop_all();
log::trace!("loading config: {:#?}", config);
self.eww_config = config; self.eww_config = config;
self.eww_state.clear_all_window_states(); self.eww_state.clear_all_window_states();

View file

@ -138,17 +138,18 @@ async fn run_filewatch<P: AsRef<Path>>(config_dir: P, evt_send: UnboundedSender<
let (tx, mut rx) = tokio::sync::mpsc::unbounded_channel(); let (tx, mut rx) = tokio::sync::mpsc::unbounded_channel();
let mut watcher: RecommendedWatcher = Watcher::new(move |res: notify::Result<notify::Event>| match res { let mut watcher: RecommendedWatcher = Watcher::new(move |res: notify::Result<notify::Event>| match res {
Ok(event) => { Ok(notify::Event { kind: notify::EventKind::Modify(_), paths, .. }) => {
let relevant_files_changed = event.paths.iter().any(|path| { let relevant_files_changed = paths.iter().any(|path| {
let ext = path.extension().unwrap_or_default(); let ext = path.extension().unwrap_or_default();
ext == "yuck" || ext == "scss" ext == "yuck" || ext == "scss"
}); });
if !relevant_files_changed { if relevant_files_changed {
if let Err(err) = tx.send(()) { if let Err(err) = tx.send(()) {
log::warn!("Error forwarding file update event: {:?}", err); log::warn!("Error forwarding file update event: {:?}", err);
} }
} }
} }
Ok(_) => {}
Err(e) => log::error!("Encountered Error While Watching Files: {}", e), Err(e) => log::error!("Encountered Error While Watching Files: {}", e),
})?; })?;
watcher.watch(&config_dir.as_ref(), RecursiveMode::Recursive)?; watcher.watch(&config_dir.as_ref(), RecursiveMode::Recursive)?;