Skip to content

Instantly share code, notes, and snippets.

@svenhornberg
Created November 3, 2015 20:31
Show Gist options
  • Save svenhornberg/0de5f8e7a50a044dbd82 to your computer and use it in GitHub Desktop.
Save svenhornberg/0de5f8e7a50a044dbd82 to your computer and use it in GitHub Desktop.
Watch Latex files with python
#!/bin/bash
pdflatex master
bibtex master
pdflatex master
pdflatex master
import sys
import time
import logging
from watchdog.observers import Observer
from watchdog.events import PatternMatchingEventHandler
import subprocess
class MyHandler(PatternMatchingEventHandler):
patterns = ["*.tex"]
def process(self, event):
"""
event.event_type
'modified' | 'created' | 'moved' | 'deleted'
event.is_directory
True | False
event.src_path
path/to/observed/file
"""
# the file will be processed there
print(event.src_path, event.event_type) # print now only for degug
subprocess.call('./latex.sh', stdout=None, stderr=None, shell=False)
def on_modified(self, event):
self.process(event)
def on_created(self, event):
self.process(event)
if __name__ == '__main__':
args = sys.argv[1:]
observer = Observer()
observer.schedule(MyHandler(), path=args[0] if args else '.')
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment