Fix setting up watches

This commit is contained in:
Kumi 2021-11-23 08:30:31 +01:00
parent 71a48efefb
commit cd2dd051e9
3 changed files with 30 additions and 12 deletions

View file

@ -6,13 +6,13 @@ class DogHandler(FileSystemEventHandler):
self._queue = queue
def on_created(self, event):
pass
self._queue.put("Created: " + event.src_path)
def on_modified(self, event):
pass
self._queue.put("Modified: " + event.src_path)
def on_moved(self, event):
pass
self._queue.put("Moved: " + event.src_path + " to: " + event.dest_path)
def on_deleted(self, event):
pass
self._queue.put("Deleted: " + event.src_path)

View file

@ -8,17 +8,17 @@ from multiprocessing import Process, Queue
import time
class ShoreThread:
def __init__(self, files):
def __init__(self, files, directories):
super().__init__()
self._config = MonsterConfig()
self._dogs = []
self.files = files
self.queue = Queue()
self.directories = directories
def getAllFiles(self):
files = []
for directory in self._config.directories:
for directory in self.directories:
files.append(directory.getFiles())
return files
@ -27,11 +27,29 @@ class ShoreThread:
del self.files[:]
def monitor(self):
for directory in self._config.directories:
dog = DogHandler(self.queue)
for directory in self.directories:
print("Creating dog for " + str(directory.location))
handler = DogHandler(self.queue)
dog = Observer()
dog.schedule(handler, str(directory.location))
dog.start()
self._dogs.append(dog)
def run(self):
print("Launched Shore Thread")
self.clearFiles()
self.monitor()
try:
while True:
self.processQueue()
except KeyboardInterrupt:
self.stop()
raise
def processQueue(self):
if not self.queue.empty:
event = self.queue.get()
print(event)
def stop(self):
for dog in self._dogs:
dog.kill()

View file

@ -24,7 +24,7 @@ if __name__ == '__main__':
threads.append(thread)
try:
shore = ShoreThread(files)
shore = ShoreThread(files, config.directories)
shore.run()
except KeyboardInterrupt:
print("Keyboard interrupt received - stopping threads")