From 5cd7291581aeef346369c902fa451d30a11d3b58 Mon Sep 17 00:00:00 2001 From: David Carley Date: Sat, 6 Mar 2021 01:26:14 -0800 Subject: [PATCH] Added a filesystem watcher for uploaded files --- setup.py | 2 +- src/py/bbctrl/State.py | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index cf4069d..e3ff885 100755 --- a/setup.py +++ b/setup.py @@ -35,6 +35,6 @@ setup( 'scripts/edit-boot-config', 'scripts/browser', ], - install_requires = 'tornado sockjs-tornado pyserial pyudev smbus2'.split(), + install_requires = 'tornado sockjs-tornado pyserial pyudev smbus2 watchdog'.split(), zip_safe = False, ) diff --git a/src/py/bbctrl/State.py b/src/py/bbctrl/State.py index 2bb42fc..3cb17e7 100644 --- a/src/py/bbctrl/State.py +++ b/src/py/bbctrl/State.py @@ -30,6 +30,15 @@ import copy import uuid import os import bbctrl +from watchdog.observers import Observer +from watchdog.events import FileSystemEventHandler + +class UploadChangeHandler(FileSystemEventHandler): + def __init__(self, state): + self.state = state + + def on_any_event(self, event): + self.state.load_files() class State(object): @@ -79,6 +88,10 @@ class State(object): self.reset() self.load_files() + observer = Observer() + observer.schedule(UploadChangeHandler(self), self.ctrl.get_upload(), recursive=True) + observer.start() + #def is_metric(self): return self.get('units', 'METRIC') == 'METRIC'