files fix
parent
3dd238cf97
commit
aae0391a0c
|
|
@ -19,11 +19,18 @@
|
|||
type MpscSender = Arc<Sender<Events>>;
|
||||
type EventHandlers = HashMap<Arc<str>, (Triggers, MpscSender)>;
|
||||
|
||||
#[derive(Debug)]
|
||||
enum FileState {
|
||||
Ok,
|
||||
NotFound,
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct FilesController {
|
||||
name : Arc<str>,
|
||||
path : String,
|
||||
code_name : Arc<str>,
|
||||
state : FileState,
|
||||
watcher : Option<Inotify>,
|
||||
triggers : EventHandlers,
|
||||
}
|
||||
|
|
@ -40,6 +47,7 @@
|
|||
Self {
|
||||
name : name.clone(),
|
||||
path : String::new(),
|
||||
state : FileState::Ok,
|
||||
watcher : None,
|
||||
triggers,
|
||||
code_name : name.clone(),
|
||||
|
|
@ -86,6 +94,12 @@
|
|||
// 1) existing check
|
||||
// dbg!(&self);
|
||||
if let Ok(_) = check_file(&self.name, &self.path).await {
|
||||
if let FileState::NotFound = self.state {
|
||||
info!("File {} ({}) was found in determined scope. Notifying ...", self.name, self.code_name);
|
||||
self.state = FileState::Ok;
|
||||
// reseting negative outcome in prc
|
||||
self.trigger_on(None).await;
|
||||
}
|
||||
match &mut self.watcher {
|
||||
Some(notify) => {
|
||||
let mut buffer = [0; 1024];
|
||||
|
|
@ -118,8 +132,11 @@
|
|||
None => { /* DEAD END */},
|
||||
}
|
||||
} else {
|
||||
if let FileState::Ok = self.state {
|
||||
warn!("File {} ({}) was not found in determined scope", self.name, &self.path);
|
||||
self.state = FileState::NotFound;
|
||||
self.trigger_on(Some(FileTriggerType::OnDelete)).await;
|
||||
}
|
||||
return;
|
||||
}
|
||||
self.trigger_on(None).await;
|
||||
|
|
|
|||
Loading…
Reference in New Issue