From b004168401dbcb48e80fccf47323f98dc7fb4e8f Mon Sep 17 00:00:00 2001 From: "roberto@mrspurr" Date: Tue, 28 Sep 2010 07:08:04 +0200 Subject: [PATCH] automagic recognition of the last parameter by extension --- uwsgi.c | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/uwsgi.c b/uwsgi.c index d6bb9477..a53f6f0b 100644 --- a/uwsgi.c +++ b/uwsgi.c @@ -539,12 +539,29 @@ int main(int argc, char *argv[], char *envp[]) { if (optind < argc) { char *lazy = argv[optind]; char *qc = strchr(lazy, ':'); - if (qc) { - qc[0] = 0 ; - uwsgi.callable = qc + 1; - } - if (!strcmp(lazy+strlen(lazy)-3, ".py")) { - uwsgi.file_config = lazy; + // ignore last arg if it starts with [ + if (lazy[0] != '[') { + if (qc) { + qc[0] = 0 ; + uwsgi.callable = qc + 1; + } + if (!strcmp(lazy+strlen(lazy)-3, ".py")) { + uwsgi.file_config = lazy; + } + else if (!strcmp(lazy+strlen(lazy)-4, ".xml")) { + if (qc) { uwsgi.callable = NULL ; qc[0] = ':';} + uwsgi.xml_config = lazy; + } + else if (!strcmp(lazy+strlen(lazy)-4, ".ini")) { + if (qc) { uwsgi.callable = NULL ; qc[0] = ':';} + uwsgi.ini = lazy; + } + else if (!strcmp(lazy+strlen(lazy)-5, ".wsgi")) { + uwsgi.wsgi_file = lazy; + } + else { + uwsgi.wsgi_config = lazy; + } } }