blob: e1fa55573788430111fe89a0a9318a034d8cc929 [file] [edit]
from __future__ import annotations
import logging
import sys
import time
from watchdog import events
from watchdog.observers import Observer
logging.basicConfig(level=logging.DEBUG)
class MyEventHandler(events.FileSystemEventHandler):
def catch_all_handler(self, event: events.FileSystemEvent) -> None:
logging.debug(event)
def on_moved(self, event: events.DirMovedEvent | events.FileMovedEvent) -> None:
self.catch_all_handler(event)
def on_created(self, event: events.DirCreatedEvent | events.FileCreatedEvent) -> None:
self.catch_all_handler(event)
def on_deleted(self, event: events.DirDeletedEvent | events.FileDeletedEvent) -> None:
self.catch_all_handler(event)
def on_modified(self, event: events.DirModifiedEvent | events.FileModifiedEvent) -> None:
self.catch_all_handler(event)
def on_closed(self, event: events.FileClosedEvent) -> None:
self.catch_all_handler(event)
def on_closed_no_write(self, event: events.FileClosedNoWriteEvent) -> None:
self.catch_all_handler(event)
def on_opened(self, event: events.FileOpenedEvent) -> None:
self.catch_all_handler(event)
path = sys.argv[1]
event_handler = MyEventHandler()
observer = Observer()
observer.schedule(event_handler, path, recursive=True)
observer.start()
try:
while True:
time.sleep(1)
finally:
observer.stop()
observer.join()