contrib/hgweb.wsgi
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
Tue, 06 Jan 2015 23:46:18 +0900
changeset 23742 3a4d8a6ce432
parent 15475 85cba926cb59
child 26421 4b0fc75f9403
permissions -rw-r--r--
revset: introduce new operator "##" to concatenate strings/symbols at runtime Before this patch, there is no way to concatenate strings at runtime. For example, to search for the issue ID "1234" in descriptions against all of "issue 1234", "issue:1234", issue1234" and "bug(1234)" patterns, the revset below should be written fully from scratch for each issue ID. grep(r"\bissue[ :]?1234\b|\bbug\(1234\)") This patch introduces new infix operator "##" to concatenate strings/symbols at runtime. Operator symbol "##" comes from the same one of C pre-processor. This concatenation allows parametrizing a part of strings in revset queries. In the case of example above, the definition of the revset alias using operator "##" below can search issue ID "1234" in complicated patterns by "issue(1234)" simply: issue($1) = grep(r"\bissue[ :]?" ## $1 ## r"\b|\bbug\(" ## $1 ## r"\)") "##" operator does: - concatenate not only strings but also symbols into the string Exact distinction between strings and symbols seems not to be convenience, because it is tiresome for users (and "revset.getstring" treats both similarly) For example of revset alias "issue()", "issue(1234)" is easier than "issue('1234')". - have higher priority than any other prefix, infix and postfix operators (like as "##" of C pre-processor) This patch (re-)assigns the priority 20 to "##", and 21 to "(", because priority 19 is already assigned to "-" as prefix "negate".
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11002
b1739ebb9f3f hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents: 7800
diff changeset
     1
# An example WSGI for use with mod_wsgi, edit as necessary
11502
594ca4c60d62 hgweb.wsgi: add a URL to the corresponding wiki documentation
Martin Geisler <mg@lazybytes.net>
parents: 11002
diff changeset
     2
# See http://mercurial.selenic.com/wiki/modwsgi for more information
11002
b1739ebb9f3f hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents: 7800
diff changeset
     3
b1739ebb9f3f hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents: 7800
diff changeset
     4
# Path to repo or hgweb config to serve (see 'hg help hgweb')
b1739ebb9f3f hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents: 7800
diff changeset
     5
config = "/path/to/repo/or/config"
7800
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
     6
15475
85cba926cb59 hgweb: add hint about finding library path with debuginstall
Matt Mackall <mpm@selenic.com>
parents: 11502
diff changeset
     7
# Uncomment and adjust if Mercurial is not installed system-wide
85cba926cb59 hgweb: add hint about finding library path with debuginstall
Matt Mackall <mpm@selenic.com>
parents: 11502
diff changeset
     8
# (consult "installed modules" path from 'hg debuginstall'):
11002
b1739ebb9f3f hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents: 7800
diff changeset
     9
#import sys; sys.path.insert(0, "/path/to/python/lib")
b1739ebb9f3f hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents: 7800
diff changeset
    10
b1739ebb9f3f hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents: 7800
diff changeset
    11
# Uncomment to send python tracebacks to the browser if an error occurs:
b1739ebb9f3f hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents: 7800
diff changeset
    12
#import cgitb; cgitb.enable()
7800
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    13
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    14
# enable demandloading to reduce startup time
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    15
from mercurial import demandimport; demandimport.enable()
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    16
11002
b1739ebb9f3f hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents: 7800
diff changeset
    17
from mercurial.hgweb import hgweb
b1739ebb9f3f hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents: 7800
diff changeset
    18
application = hgweb(config)