diff --git a/docs/settings.rst b/docs/settings.rst index 0212fd24..9ff9c8e3 100644 --- a/docs/settings.rst +++ b/docs/settings.rst @@ -81,9 +81,9 @@ Setting name (default value) What doe `MARKUP` (``('rst', 'md')``) A list of available markup languages you want to use. For the moment, the only available values are `rst`, `md`, `markdown`, `mkd`, `mdown`, `html`, and `htm`. -`IGNORE_FILES` (``[]``) A list of file globbing patterns to match against the - source files to be ignored by the processor. For example - ``['.#*']`` will ignore emacs temporary files. +`IGNORE_FILES` (``['.#*']``) A list of file globbing patterns to match against the + source files to be ignored by the processor. For example, + the default ``['.#*']`` will ignore emacs lock files. `MD_EXTENSIONS` (``['codehilite(css_class=highlight)','extra']``) A list of the extensions that the Markdown processor will use. Refer to the Python Markdown documentation's `Extensions section `_ diff --git a/pelican/__init__.py b/pelican/__init__.py index b88ec711..37f057f9 100644 --- a/pelican/__init__.py +++ b/pelican/__init__.py @@ -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.') diff --git a/pelican/settings.py b/pelican/settings.py index 30ba231c..091999a7 100644 --- a/pelican/settings.py +++ b/pelican/settings.py @@ -100,7 +100,7 @@ _DEFAULT_CONFIG = {'PATH': os.curdir, 'PLUGIN_PATH': '', 'PLUGINS': [], 'TEMPLATE_PAGES': {}, - 'IGNORE_FILES': [] + 'IGNORE_FILES': ['.#*'] } diff --git a/pelican/utils.py b/pelican/utils.py index 39a3f8f4..0fb6443a 100644 --- a/pelican/utils.py +++ b/pelican/utils.py @@ -444,7 +444,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: @@ -464,7 +467,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