From 869126ce767f52adfe5b19f6323b3e74444b50bf Mon Sep 17 00:00:00 2001 From: Robin Rombach Date: Fri, 15 Jul 2022 11:26:23 +0000 Subject: [PATCH] run command on new file --- scripts/cmd_on_new_ckpt.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 scripts/cmd_on_new_ckpt.py diff --git a/scripts/cmd_on_new_ckpt.py b/scripts/cmd_on_new_ckpt.py new file mode 100644 index 0000000..a0f519b --- /dev/null +++ b/scripts/cmd_on_new_ckpt.py @@ -0,0 +1,32 @@ +import os +import subprocess +import time +import fire + + +class Checker(object): + def __init__(self, filename, interval=60): + self._cached_stamp = 0 + self.filename = filename + self.interval = interval + + def check(self, cmd): + while True: + stamp = os.stat(self.filename).st_mtime + if stamp != self._cached_stamp: + self._cached_stamp = stamp + print(f"{self.__class__.__name__}: Detected a new file at {self.filename}, running evaluation commands on it.") + subprocess.run(cmd, shell=True) + else: + time.sleep(self.interval) + + +def run(filename, cmd): + checker = Checker(filename, interval=60) + checker.check(cmd) + + +if __name__ == "__main__": + fire.Fire(run) + +