aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/script/reloader.py
diff options
context:
space:
mode:
authorMatthewShao <me@matshao.com>2016-01-18 09:57:58 +0800
committerMatthewShao <me@matshao.com>2016-01-18 09:57:58 +0800
commit7f2b17d0ef4c118ddb83a7a0f3e73e65cae116d2 (patch)
tree7876d21ed6b22a7d871ee1b53f314c14a238cbc2 /libmproxy/script/reloader.py
parent5b442a8947df332be6f79e3cdde2a80d1f3b00c6 (diff)
downloadmitmproxy-7f2b17d0ef4c118ddb83a7a0f3e73e65cae116d2.tar.gz
mitmproxy-7f2b17d0ef4c118ddb83a7a0f3e73e65cae116d2.tar.bz2
mitmproxy-7f2b17d0ef4c118ddb83a7a0f3e73e65cae116d2.zip
Use RegexMatchingEventHandler() instead.
Diffstat (limited to 'libmproxy/script/reloader.py')
-rw-r--r--libmproxy/script/reloader.py24
1 files changed, 7 insertions, 17 deletions
diff --git a/libmproxy/script/reloader.py b/libmproxy/script/reloader.py
index 390ea343..367a59dd 100644
--- a/libmproxy/script/reloader.py
+++ b/libmproxy/script/reloader.py
@@ -1,12 +1,12 @@
import os
-import fnmatch
import sys
-from watchdog.events import PatternMatchingEventHandler
+from watchdog.events import RegexMatchingEventHandler
if sys.platform == 'darwin':
from watchdog.observers.polling import PollingObserver as Observer
else:
from watchdog.observers import Observer
-# Use PollingObserver on OS X, and natvie Observer on Linux and Windows
+# The OSX reloader is watchdog 0.8.3 breaks when unobserving paths.
+# We use the PollingObserver instead.
_observers = {}
@@ -30,28 +30,18 @@ def unwatch(script):
observer.join()
-class _ScriptModificationHandler(PatternMatchingEventHandler):
- def __init__(self, callback, filename='*'):
+class _ScriptModificationHandler(RegexMatchingEventHandler):
+ def __init__(self, callback, filename='.*'):
super(_ScriptModificationHandler, self).__init__(
ignore_directories=True,
+ regexes=['.*'+filename]
)
self.callback = callback
self.filename = filename
def on_modified(self, event):
- if event.is_directory:
- files_in_dir = [event.src_path + "/" +
- f for f in os.listdir(event.src_path)]
- if len(files_in_dir) > 0:
- modified_filepath = max(files_in_dir, key=os.path.getmtime)
- else:
- return
- else:
- modified_filepath = event.src_path
-
- if fnmatch.fnmatch(os.path.basename(modified_filepath), self.filename):
- self.callback()
+ self.callback()
__all__ = ["watch", "unwatch"]