diff options
author | MatthewShao <me@matshao.com> | 2016-01-18 09:57:58 +0800 |
---|---|---|
committer | MatthewShao <me@matshao.com> | 2016-01-18 09:57:58 +0800 |
commit | 7f2b17d0ef4c118ddb83a7a0f3e73e65cae116d2 (patch) | |
tree | 7876d21ed6b22a7d871ee1b53f314c14a238cbc2 | |
parent | 5b442a8947df332be6f79e3cdde2a80d1f3b00c6 (diff) | |
download | mitmproxy-7f2b17d0ef4c118ddb83a7a0f3e73e65cae116d2.tar.gz mitmproxy-7f2b17d0ef4c118ddb83a7a0f3e73e65cae116d2.tar.bz2 mitmproxy-7f2b17d0ef4c118ddb83a7a0f3e73e65cae116d2.zip |
Use RegexMatchingEventHandler() instead.
-rw-r--r-- | libmproxy/script/reloader.py | 24 |
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"] |