mirror of
https://github.com/frappe/gunicorn.git
synced 2026-01-14 11:09:11 +08:00
Add --paste-global-conf option (#1304)
* Add --paste-global-conf option so users can pass arbitrary values to the PasteDeploy entrypoint from cli * Reflect the suggestions: `--paste-global-conf` => `--paste-global` and adding more description in the docstring.
This commit is contained in:
parent
28c12b2668
commit
d468d5b592
@ -56,7 +56,7 @@ class WSGIApplication(Application):
|
|||||||
|
|
||||||
# load the paste app
|
# load the paste app
|
||||||
from .pasterapp import load_pasteapp
|
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):
|
def load(self):
|
||||||
if self.cfg.paste is not None:
|
if self.cfg.paste is not None:
|
||||||
|
|||||||
@ -14,6 +14,7 @@ except ImportError: # python 2.6
|
|||||||
from . import argparse_compat as argparse
|
from . import argparse_compat as argparse
|
||||||
import os
|
import os
|
||||||
import pwd
|
import pwd
|
||||||
|
import re
|
||||||
import ssl
|
import ssl
|
||||||
import sys
|
import sys
|
||||||
import textwrap
|
import textwrap
|
||||||
@ -203,6 +204,25 @@ class Config(object):
|
|||||||
|
|
||||||
return True
|
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'(?<!\\)=', s, 1)
|
||||||
|
except ValueError:
|
||||||
|
raise RuntimeError("environment setting %r invalid" % s)
|
||||||
|
k = k.replace('\\=', '=')
|
||||||
|
v = v.replace('\\=', '=')
|
||||||
|
global_conf[k] = v
|
||||||
|
|
||||||
|
return global_conf
|
||||||
|
|
||||||
|
|
||||||
class SettingMeta(type):
|
class SettingMeta(type):
|
||||||
def __new__(cls, name, bases, attrs):
|
def __new__(cls, name, bases, attrs):
|
||||||
@ -1765,3 +1785,24 @@ if sys.version_info >= (2, 7):
|
|||||||
desc = """\
|
desc = """\
|
||||||
Ciphers to use (see stdlib ssl module's)
|
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
|
||||||
|
|
||||||
|
"""
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user