Merge pull request #862 from avaris/emacs-autoreload

ignore emacs lock files and exception handling for watchers
This commit is contained in:
Justin Mayer 2013-04-22 20:04:24 -07:00
commit 30c2490f88
4 changed files with 18 additions and 8 deletions

View file

@ -353,8 +353,6 @@ def main():
pelican.run()
time.sleep(.5) # sleep to avoid cpu load
except KeyboardInterrupt:
logger.warning("Keyboard interrupt, quitting.")
break
@ -366,6 +364,10 @@ def main():
logger.warning(
'Caught exception "{0}". Reloading.'.format(e))
finally:
time.sleep(.5) # sleep to avoid cpu load
else:
if next(watchers['content']) is None:
logger.warning('No valid files found in content.')

View file

@ -100,7 +100,7 @@ _DEFAULT_CONFIG = {'PATH': os.curdir,
'PLUGIN_PATH': '',
'PLUGINS': [],
'TEMPLATE_PAGES': {},
'IGNORE_FILES': []
'IGNORE_FILES': ['.#*']
}

View file

@ -464,7 +464,10 @@ def folder_watcher(path, extensions, ignores=[]):
for f in files:
if (f.endswith(tuple(extensions)) and
not any(fnmatch.fnmatch(f, ignore) for ignore in ignores)):
yield os.stat(os.path.join(root, f)).st_mtime
try:
yield os.stat(os.path.join(root, f)).st_mtime
except OSError as e:
logger.warning('Caught Exception: {}'.format(e))
LAST_MTIME = 0
while True:
@ -484,7 +487,12 @@ def file_watcher(path):
LAST_MTIME = 0
while True:
if path:
mtime = os.stat(path).st_mtime
try:
mtime = os.stat(path).st_mtime
except OSError as e:
logger.warning('Caught Exception: {}'.format(e))
continue
if mtime > LAST_MTIME:
LAST_MTIME = mtime
yield True