Skip to content

Instantly share code, notes, and snippets.

@daimon99
Created April 21, 2020 07:01
Show Gist options
  • Save daimon99/670b2c5706935640bec13abee035e920 to your computer and use it in GitHub Desktop.
Save daimon99/670b2c5706935640bec13abee035e920 to your computer and use it in GitHub Desktop.
用 watchdog 监听文件变化自动构建 / Auto build monitoring file change with watchdog
import time
import watchdog.events
import watchdog.observers
class Handler(watchdog.events.PatternMatchingEventHandler):
def __init__(self):
# Set the patterns for PatternMatchingEventHandler
watchdog.events.PatternMatchingEventHandler.__init__(self, patterns=['*.rst'],
ignore_directories=True, case_sensitive=False)
def on_created(self, event):
print("Watchdog received created event - % s." % event.src_path)
# Event is created, you can process it now
self.re_build_doc()
def on_modified(self, event):
print("Watchdog received modified event - % s." % event.src_path)
# Event is modified, you can process it now
self.re_build_doc()
def re_build_doc(self):
import subprocess
subprocess.getoutput('make html')
if __name__ == "__main__":
src_path = r"."
event_handler = Handler()
observer = watchdog.observers.Observer()
observer.schedule(event_handler, path=src_path, recursive=True)
observer.start()
print('Start auto build docs now ...')
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
print('Stop auto build docs.')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment