mirror of
https://github.com/frappe/gunicorn.git
synced 2026-01-14 11:09:11 +08:00
build from Settings list the run_gunicorn option list.
This commit is contained in:
parent
96e7ec10dd
commit
ae79f33785
@ -22,14 +22,17 @@ def wrap_method(func):
|
|||||||
return func(*args, **kwargs)
|
return func(*args, **kwargs)
|
||||||
return _wrapped
|
return _wrapped
|
||||||
|
|
||||||
|
def make_settings():
|
||||||
|
settings = {}
|
||||||
|
for s in KNOWN_SETTINGS:
|
||||||
|
setting = s()
|
||||||
|
settings[setting.name] = setting.copy()
|
||||||
|
return settings
|
||||||
|
|
||||||
class Config(object):
|
class Config(object):
|
||||||
|
|
||||||
def __init__(self, usage=None):
|
def __init__(self, usage=None):
|
||||||
self.settings = {}
|
self.settings = make_settings()
|
||||||
for s in KNOWN_SETTINGS:
|
|
||||||
setting = s()
|
|
||||||
self.settings[setting.name] = setting.copy()
|
|
||||||
|
|
||||||
self.usage = usage
|
self.usage = usage
|
||||||
|
|
||||||
def __getattr__(self, name):
|
def __getattr__(self, name):
|
||||||
|
|||||||
@ -13,33 +13,47 @@ from django.conf import settings
|
|||||||
from django.utils import translation
|
from django.utils import translation
|
||||||
|
|
||||||
from gunicorn.app.djangoapp import DjangoApplicationCommand
|
from gunicorn.app.djangoapp import DjangoApplicationCommand
|
||||||
|
from gunicorn.config import make_settings
|
||||||
|
|
||||||
|
def make_options():
|
||||||
|
g_settings = make_settings()
|
||||||
|
|
||||||
|
keys = g_settings.keys()
|
||||||
|
def sorter(k):
|
||||||
|
return (g_settings[k].section, g_settings[k].order)
|
||||||
|
|
||||||
|
opts = [
|
||||||
|
make_option('--adminmedia', dest='admin_media_path', default='',
|
||||||
|
help='Specifies the directory from which to serve admin media.')
|
||||||
|
]
|
||||||
|
|
||||||
|
for k in keys:
|
||||||
|
setting = g_settings[k]
|
||||||
|
if not setting.cli:
|
||||||
|
continue
|
||||||
|
|
||||||
|
args = tuple(setting.cli)
|
||||||
|
|
||||||
|
kwargs = {
|
||||||
|
"dest": setting.name,
|
||||||
|
"metavar": setting.meta or None,
|
||||||
|
"action": setting.action or "store",
|
||||||
|
"type": setting.type or "string",
|
||||||
|
"default": None,
|
||||||
|
"help": "%s [%s]" % (setting.short, setting.default)
|
||||||
|
}
|
||||||
|
if kwargs["action"] != "store":
|
||||||
|
kwargs.pop("type")
|
||||||
|
|
||||||
|
opts.append(make_option(*args, **kwargs))
|
||||||
|
|
||||||
|
return tuple(opts)
|
||||||
|
|
||||||
|
GUNICORN_OPTIONS = make_options()
|
||||||
|
|
||||||
|
|
||||||
class Command(BaseCommand):
|
class Command(BaseCommand):
|
||||||
option_list = BaseCommand.option_list + (
|
option_list = BaseCommand.option_list + GUNICORN_OPTIONS
|
||||||
make_option('--adminmedia', dest='admin_media_path', default='',
|
|
||||||
help='Specifies the directory from which to serve admin media.'),
|
|
||||||
make_option('-c', '--config', dest='config', type='string',
|
|
||||||
help='Gunicorn Config file. [%default]'),
|
|
||||||
make_option('-k', '--worker-class', dest='worker_class',
|
|
||||||
help="The type of request processing to use "+
|
|
||||||
"[egg:gunicorn#sync]"),
|
|
||||||
make_option('-w', '--workers', dest='workers',
|
|
||||||
help='Specifies the number of worker processes to use.'),
|
|
||||||
make_option('--pid', dest='pidfile',
|
|
||||||
help='set the background PID file'),
|
|
||||||
make_option( '--daemon', dest='daemon', action="store_true",
|
|
||||||
help='Run daemonized in the background.'),
|
|
||||||
make_option('--umask', dest='umask',
|
|
||||||
help="Define umask of daemon process"),
|
|
||||||
make_option('-u', '--user', dest="user",
|
|
||||||
help="Change worker user"),
|
|
||||||
make_option('-g', '--group', dest="group",
|
|
||||||
help="Change worker group"),
|
|
||||||
make_option('-n', '--name', dest='proc_name',
|
|
||||||
help="Process name"),
|
|
||||||
make_option('--preload', dest='preload_app', action='store_true',
|
|
||||||
help="Load application code before the worker processes are forked.")
|
|
||||||
)
|
|
||||||
help = "Starts a fully-functional Web server using gunicorn."
|
help = "Starts a fully-functional Web server using gunicorn."
|
||||||
args = '[optional port number, or ipaddr:port or unix:/path/to/sockfile]'
|
args = '[optional port number, or ipaddr:port or unix:/path/to/sockfile]'
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user