forked from github/pelican
commit
b642d2247d
3 changed files with 9 additions and 6 deletions
|
|
@ -44,6 +44,7 @@ class Pelican(object):
|
|||
self.theme = settings['THEME']
|
||||
self.output_path = settings['OUTPUT_PATH']
|
||||
self.markup = settings['MARKUP']
|
||||
self.ignore_files = settings['IGNORE_FILES']
|
||||
self.delete_outputdir = settings['DELETE_OUTPUT_DIRECTORY']
|
||||
|
||||
self.init_path()
|
||||
|
|
@ -292,8 +293,8 @@ def main():
|
|||
# restriction; all files are recursively checked if they
|
||||
# have changed, no matter what extension the filenames
|
||||
# have.
|
||||
if files_changed(pelican.path, pelican.markup) or \
|
||||
files_changed(pelican.theme, ['']):
|
||||
if files_changed(pelican.path, pelican.markup, pelican.ignore_files) or \
|
||||
files_changed(pelican.theme, [''], pelican.ignore_files):
|
||||
if not files_found_error:
|
||||
files_found_error = True
|
||||
pelican.run()
|
||||
|
|
|
|||
|
|
@ -80,7 +80,8 @@ _DEFAULT_CONFIG = {'PATH': '.',
|
|||
'TYPOGRIFY': False,
|
||||
'SUMMARY_MAX_LENGTH': 50,
|
||||
'PLUGINS': [],
|
||||
'TEMPLATE_PAGES': {}
|
||||
'TEMPLATE_PAGES': {},
|
||||
'IGNORE_FILES': []
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import traceback
|
|||
import logging
|
||||
import errno
|
||||
import locale
|
||||
import fnmatch
|
||||
from collections import defaultdict, Hashable
|
||||
from functools import partial
|
||||
|
||||
|
|
@ -406,8 +407,7 @@ def process_translations(content_list):
|
|||
|
||||
LAST_MTIME = 0
|
||||
|
||||
|
||||
def files_changed(path, extensions):
|
||||
def files_changed(path, extensions, ignores=[]):
|
||||
"""Return True if the files have changed since the last check"""
|
||||
|
||||
def file_times(path):
|
||||
|
|
@ -415,7 +415,8 @@ def files_changed(path, extensions):
|
|||
for root, dirs, files in os.walk(path):
|
||||
dirs[:] = [x for x in dirs if x[0] != '.']
|
||||
for f in files:
|
||||
if any(f.endswith(ext) for ext in extensions):
|
||||
if any(f.endswith(ext) for ext in extensions) \
|
||||
and not any(fnmatch.fnmatch(f, ignore) for ignore in ignores):
|
||||
yield os.stat(os.path.join(root, f)).st_mtime
|
||||
|
||||
global LAST_MTIME
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue