29 lines
889 B
Python
29 lines
889 B
Python
|
|
import os
|
||
|
|
import sys
|
||
|
|
import time
|
||
|
|
from watchdog.observers import Observer
|
||
|
|
from watchdog.events import FileSystemEventHandler
|
||
|
|
|
||
|
|
class TestResultsHandler(FileSystemEventHandler):
|
||
|
|
def __init__(self, callback):
|
||
|
|
super().__init__()
|
||
|
|
self.callback = callback
|
||
|
|
|
||
|
|
def on_created(self, event):
|
||
|
|
if event.is_directory:
|
||
|
|
print(f"[watcher] Detected new test result directory: {event.src_path}")
|
||
|
|
self.callback(event.src_path)
|
||
|
|
|
||
|
|
|
||
|
|
def start_watching_results_dir(results_dir, callback):
|
||
|
|
event_handler = TestResultsHandler(callback)
|
||
|
|
observer = Observer()
|
||
|
|
observer.schedule(event_handler, results_dir, recursive=False)
|
||
|
|
observer.start()
|
||
|
|
print(f"[watcher] Started watching for new test results in: {results_dir}")
|
||
|
|
try:
|
||
|
|
while True:
|
||
|
|
time.sleep(1)
|
||
|
|
except KeyboardInterrupt:
|
||
|
|
observer.stop()
|
||
|
|
observer.join()
|