summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuergen Bocklage-Ryannel <juergen@ryannel.org>2018-11-01 16:15:31 -0400
committerJuergen Bocklage-Ryannel <juergen@ryannel.org>2018-11-01 16:15:31 -0400
commit2d6a4f42259cb137988538d5f2392d4602da1c9d (patch)
treed1c47b20287a605a485c27161dffffb10fcdb986
parent4259be34223d1e19eac2ebb40a1311553f913478 (diff)
downloadqtivi-qface-2d6a4f42259cb137988538d5f2392d4602da1c9d.tar.gz
update watch code
-rw-r--r--qface/watch.py25
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')