summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/pyramid/scripts/pserve.py24
1 files changed, 21 insertions, 3 deletions
diff --git a/src/pyramid/scripts/pserve.py b/src/pyramid/scripts/pserve.py
index bf5662a19..350ab4d6d 100644
--- a/src/pyramid/scripts/pserve.py
+++ b/src/pyramid/scripts/pserve.py
@@ -25,8 +25,10 @@ from pyramid.path import AssetResolver
from pyramid.settings import aslist
-def main(argv=sys.argv, quiet=False):
- command = PServeCommand(argv, quiet=quiet)
+def main(argv=sys.argv, quiet=False, original_ignore_files=None):
+ command = PServeCommand(
+ argv, quiet=quiet, original_ignore_files=original_ignore_files
+ )
return command.run()
@@ -131,13 +133,15 @@ class PServeCommand(object):
_scheme_re = re.compile(r'^[a-z][a-z]+:', re.I)
- def __init__(self, argv, quiet=False):
+ def __init__(self, argv, quiet=False, original_ignore_files=None):
self.args = self.parser.parse_args(argv[1:])
if quiet:
self.args.verbose = 0
if self.args.reload:
self.worker_kwargs = {'argv': argv, "quiet": quiet}
self.watch_files = set()
+ self.ignore_files = set()
+ self.original_ignore_files = original_ignore_files
def out(self, msg): # pragma: no cover
if self.args.verbose > 0:
@@ -151,6 +155,9 @@ class PServeCommand(object):
config_path = self.get_config_path(loader)
here = os.path.dirname(config_path)
watch_files = aslist(settings.get('watch_files', ''), flatten=False)
+ self.ignore_files = set(
+ aslist(settings.get('ignore_files', ''), flatten=False)
+ )
# track file paths relative to the ini file
resolver = AssetResolver(package=None)
@@ -232,11 +239,13 @@ class PServeCommand(object):
if self.args.reload and not hupper.is_active():
if self.args.verbose > 1:
self.out('Running reloading file monitor')
+ self.worker_kwargs['original_ignore_files'] = self.ignore_files
hupper.start_reloader(
'pyramid.scripts.pserve.main',
reload_interval=int(self.args.reload_interval),
verbose=self.args.verbose,
worker_kwargs=self.worker_kwargs,
+ ignore_files=self.ignore_files,
)
return 0
@@ -250,6 +259,15 @@ class PServeCommand(object):
reloader = hupper.get_reloader()
reloader.watch_files(list(self.watch_files))
+ if (
+ self.original_ignore_files is not None
+ and self.original_ignore_files != self.ignore_files
+ ):
+ self.out(
+ 'A change to "ignore_files" was detected but it will not take'
+ ' effect until pserve is restarted.'
+ )
+
server = server_loader.get_wsgi_server(server_name, config_vars)
app = loader.get_wsgi_app(app_name, config_vars)