diff --git a/gunicorn/app/wsgiapp.py b/gunicorn/app/wsgiapp.py index cf4db1eb..aeb15bbc 100644 --- a/gunicorn/app/wsgiapp.py +++ b/gunicorn/app/wsgiapp.py @@ -56,7 +56,7 @@ class WSGIApplication(Application): # load the paste app from .pasterapp import load_pasteapp - return load_pasteapp(self.cfgurl, self.relpath, global_conf=None) + return load_pasteapp(self.cfgurl, self.relpath, global_conf=self.cfg.paste_global_conf) def load(self): if self.cfg.paste is not None: diff --git a/gunicorn/config.py b/gunicorn/config.py index 740d8e50..60fcd3de 100644 --- a/gunicorn/config.py +++ b/gunicorn/config.py @@ -14,6 +14,7 @@ except ImportError: # python 2.6 from . import argparse_compat as argparse import os import pwd +import re import ssl import sys import textwrap @@ -203,6 +204,25 @@ class Config(object): return True + @property + def paste_global_conf(self): + raw_global_conf = self.settings['raw_paste_global_conf'].get() + if raw_global_conf is None: + return None + + global_conf = {} + for e in raw_global_conf: + s = _compat.bytes_to_str(e) + try: + k, v = re.split(r'(?= (2, 7): desc = """\ Ciphers to use (see stdlib ssl module's) """ + + +class PasteGlobalConf(Setting): + name = "raw_paste_global_conf" + action = "append" + section = "Server Mechanics" + cli = ["--paste-global"] + meta = "CONF" + validator = validate_list_string + default = [] + + desc = """\ + Set a PasteDeploy global config variable (key=value). + + The option can be specified multiple times. + + The variables are passed to the the PasteDeploy entrypoint. Ex.:: + + $ gunicorn -b 127.0.0.1:8000 --paste development.ini --paste-global FOO=1 --paste-global BAR=2 + + """