From 1f5d883b283f9f040d4db1d64ddccb2519045bd7 Mon Sep 17 00:00:00 2001 From: Benjamin Braatz Date: Mon, 26 Jul 2021 16:23:59 +0200 Subject: [PATCH] Only reread configuration if file itself modified. --- controlpi/__main__.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) 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 -- 2.34.1