Commits

ro...@mail.hsmx.de  committed 08c40a0

my first hgwebdir.wsgi version

  • Participants

Comments (0)

Files changed (1)

File hgwebdir.wsgi

+#!/usr/bin/env python
+#
+# An example CGI script to export multiple hgweb repos, edit as necessary
+
+# adjust python path if not a system-wide install:
+#import sys
+#sys.path.insert(0, "/path/to/python/lib")
+
+# enable importing on demand to reduce startup time
+from mercurial import demandimport; demandimport.enable()
+
+# Uncomment to send python tracebacks to the browser if an error occurs:
+#import cgitb
+#cgitb.enable()
+
+# If you'd like to serve pages with UTF-8 instead of your default
+# locale charset, you can do so by uncommenting the following lines.
+# Note that this will cause your .hgrc files to be interpreted in
+# UTF-8 and all your repo files to be displayed using UTF-8.
+#
+import os
+os.environ["HGENCODING"] = "UTF-8"
+os.environ["HGRCPATH"] = '/var/www/hg.the-it-crowd.net/wsgi-bin/hgrc'
+
+from mercurial.hgweb.hgwebdir_mod import hgwebdir
+
+# The config file looks like this.  You can have paths to individual
+# repos, collections of repos in a directory tree, or both.
+#
+# [paths]
+# virtual/path = /real/path
+# virtual/path = /real/path
+#
+# [collections]
+# /prefix/to/strip/off = /root/of/tree/full/of/repos
+#
+# collections example: say directory tree /foo contains repos /foo/bar,
+# /foo/quux/baz.  Give this config section:
+#   [collections]
+#   /foo = /foo
+# Then repos will list as bar and quux/baz.
+#
+# Alternatively you can pass a list of ('virtual/path', '/real/path') tuples
+# or use a dictionary with entries like 'virtual/path': '/real/path'
+
+configfile = '/var/www/hg.the-it-crowd.net/wsgi-bin/hgweb.conf'
+
+from os import path
+import os
+from mercurial import util
+config = util.configparser()
+config.read(configfile)
+paths = config.items('paths')
+config.remove_section('paths')
+config.add_section('paths')
+
+for virtual, pathspec in paths:
+    for root, dirs, files in os.walk(pathspec):
+        for dir in dirs:
+            if(dir.endswith('.hg')):
+                config.set('paths', path.join(virtual, root[len(pathspec):]), root)
+
+application = hgwebdir(config)