diff mercurial/hgweb.py @ 2127:8a85dbbadddf

Allow 'hg serve --webdir-conf foo' to be run outside a repository.
author Thomas Arendsen Hein <thomas@intevation.de>
date Tue, 25 Apr 2006 19:38:19 +0200
parents 27fd8b7a6c51
children c72e618c1204
line wrap: on
line diff
--- a/mercurial/hgweb.py	Tue Apr 25 18:50:40 2006 +0200
+++ b/mercurial/hgweb.py	Tue Apr 25 19:38:19 2006 +0200
@@ -889,7 +889,7 @@
         else:
             req.write(self.t("error"))
 
-def create_server(repo):
+def create_server(ui, repo):
     use_threads = True
 
     def openlog(opt, default):
@@ -897,12 +897,12 @@
             return open(opt, 'w')
         return default
 
-    address = repo.ui.config("web", "address", "")
-    port = int(repo.ui.config("web", "port", 8000))
-    use_ipv6 = repo.ui.configbool("web", "ipv6")
-    webdir_conf = repo.ui.config("web", "webdir_conf")
-    accesslog = openlog(repo.ui.config("web", "accesslog", "-"), sys.stdout)
-    errorlog = openlog(repo.ui.config("web", "errorlog", "-"), sys.stderr)
+    address = ui.config("web", "address", "")
+    port = int(ui.config("web", "port", 8000))
+    use_ipv6 = ui.configbool("web", "ipv6")
+    webdir_conf = ui.config("web", "webdir_conf")
+    accesslog = openlog(ui.config("web", "accesslog", "-"), sys.stdout)
+    errorlog = openlog(ui.config("web", "errorlog", "-"), sys.stderr)
 
     if use_threads:
         try:
@@ -988,8 +988,10 @@
 
             if webdir_conf:
                 hgwebobj = hgwebdir(webdir_conf)
+            elif repo is not None:
+                hgwebobj = hgweb(repo.__class__(repo.ui, repo.origroot))
             else:
-                hgwebobj = hgweb(repo.__class__(repo.ui, repo.origroot))
+                raise hg.RepoError(_('no repo found'))
             hgwebobj.run(req)