From: Benjamin Braatz Date: Mon, 26 Jul 2021 14:23:59 +0000 (+0200) Subject: Only reread configuration if file itself modified. X-Git-Tag: v0.3.0~35 X-Git-Url: http://git.graph-it.com/?a=commitdiff_plain;h=1f5d883b283f9f040d4db1d64ddccb2519045bd7;p=graphit%2Fcontrolpi.git Only reread configuration if file itself modified. --- diff --git a/controlpi/__main__.py b/controlpi/__main__.py index 848e9b2..8ef2ea2 100644 --- a/controlpi/__main__.py +++ b/controlpi/__main__.py @@ -53,10 +53,11 @@ def read_configuration() -> Dict[str, PluginConf]: class ConfigChangeHandler(pyinotify.ProcessEvent): def process_IN_MODIFY(self, event): - print("Configuration file modified.") - for task in asyncio.all_tasks(): - if task is not asyncio.current_task(): - task.cancel() + if event.pathname == os.path.abspath(sys.argv[1]): + print(f"Configuration file modified: {event.pathname}") + for task in asyncio.all_tasks(): + if task is not asyncio.current_task(): + task.cancel() async def add_config_change_handler() -> pyinotify.AsyncioNotifier: @@ -65,7 +66,6 @@ async def add_config_change_handler() -> pyinotify.AsyncioNotifier: notifier = pyinotify.AsyncioNotifier(wm, loop, default_proc_fun=ConfigChangeHandler()) wm.add_watch(os.path.dirname(sys.argv[1]), pyinotify.ALL_EVENTS) - wm.add_watch(sys.argv[1], pyinotify.ALL_EVENTS) return notifier