diff options
Diffstat (limited to 'qface/watch.py')
-rw-r--r-- | qface/watch.py | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/qface/watch.py b/qface/watch.py index 117fcea..33fae01 100644 --- a/qface/watch.py +++ b/qface/watch.py @@ -11,9 +11,9 @@ Provides an API to monitor the file system class RunScriptChangeHandler(FileSystemEventHandler): - def __init__(self, script): + def __init__(self, args): super().__init__() - self.script = script + self.args = args self.is_running = False def on_modified(self, event): @@ -25,26 +25,19 @@ class RunScriptChangeHandler(FileSystemEventHandler): if self.is_running: return self.is_running = True - sh(self.script, cwd=Path.getcwd()) + sh(self.args, cwd=Path.getcwd()) self.is_running = False -def monitor(script_dir, src, dst, argv): +def monitor(args, watch): """ reloads the script given by argv when src files changes """ - if script_dir.isfile(): - script_dir = script_dir.dirname() - 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(argv) - 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) observer = Observer() - click.secho('watch recursive: {0}'.format(script_dir), fg='blue') - observer.schedule(event_handler, script_dir, 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') |