diff options
author | Juergen Bocklage-Ryannel <juergen@ryannel.org> | 2018-11-01 16:15:31 -0400 |
---|---|---|
committer | Juergen Bocklage-Ryannel <juergen@ryannel.org> | 2018-11-01 16:15:31 -0400 |
commit | 2d6a4f42259cb137988538d5f2392d4602da1c9d (patch) | |
tree | d1c47b20287a605a485c27161dffffb10fcdb986 | |
parent | 4259be34223d1e19eac2ebb40a1311553f913478 (diff) | |
download | qtivi-qface-2d6a4f42259cb137988538d5f2392d4602da1c9d.tar.gz |
update watch code
-rw-r--r-- | qface/watch.py | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/qface/watch.py b/qface/watch.py index 1a9ef23..e5d86ba 100644 --- a/qface/watch.py +++ b/qface/watch.py @@ -3,16 +3,18 @@ from watchdog.observers import Observer import click from path import Path import time -from .shell import sh +from subprocess import call """ Provides an API to monitor the file system """ + class RunScriptChangeHandler(FileSystemEventHandler): - def __init__(self, script): + def __init__(self, args, cwd): super().__init__() - self.script = script + self.args = args + self.cwd = cwd self.is_running = False def on_modified(self, event): @@ -24,24 +26,19 @@ class RunScriptChangeHandler(FileSystemEventHandler): if self.is_running: return self.is_running = True - sh(str(self.script), cwd=Path.getcwd()) + call(self.args, cwd=self.cwd) self.is_running = False -def monitor(script, src, dst, args): +def monitor(args, watch, cwd=Path.getcwd()): """ reloads the script given by argv when src files changes """ - src = src if isinstance(src, (list, tuple)) else [src] - dst = Path(dst).expand().abspath() - src = [Path(entry).expand().abspath() for entry in src] - command = ' '.join(args) - print('command: ', command) - event_handler = RunScriptChangeHandler(command) + watch = watch if isinstance(watch, (list, tuple)) else [watch] + watch = [Path(entry).expand().abspath() for entry in watch] + event_handler = RunScriptChangeHandler(args, cwd) observer = Observer() - click.secho('watch recursive: {0}'.format(script.dirname()), fg='blue') - observer.schedule(event_handler, script.dirname(), recursive=True) - for entry in src: + for entry in watch: if entry.isfile(): entry = entry.parent click.secho('watch recursive: {0}'.format(entry), fg='blue') |