Fix setting up watches
This commit is contained in:
parent
71a48efefb
commit
cd2dd051e9
3 changed files with 30 additions and 12 deletions
|
@ -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)
|
|
@ -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()
|
|
@ -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")
|
||||
|
|
Loading…
Reference in a new issue