diff -r 1874697a8863 -r 63948e7d37f7 mercurial/commands.py --- a/mercurial/commands.py Thu Mar 11 13:32:43 2010 +0100 +++ b/mercurial/commands.py Thu Mar 11 13:33:29 2010 +0100 @@ -12,7 +12,7 @@ import hg, util, revlog, bundlerepo, extensions, copies, error import patch, help, mdiff, url, encoding, templatekw import archival, changegroup, cmdutil, sshserver, hbisect -from hgweb import server +from hgweb import server, hgweb_mod, hgwebdir_mod import merge as merge_ import minirst @@ -2887,7 +2887,7 @@ baseui = repo and repo.baseui or ui optlist = ("name templates style address port prefix ipv6" - " accesslog errorlog webdir_conf certificate encoding") + " accesslog errorlog certificate encoding") for o in optlist.split(): val = opts.get(o, '') if val in (None, ''): # should check against default options instead @@ -2896,14 +2896,18 @@ if repo and repo.ui != baseui: repo.ui.setconfig("web", o, val) - if repo is None and not ui.config("web", "webdir_conf"): - raise error.RepoError(_("There is no Mercurial repository here" - " (.hg not found)")) + if opts.get('webdir_conf'): + app = hgwebdir_mod.hgwebdir(opts['webdir_conf'], ui) + elif repo is not None: + app = hgweb_mod.hgweb(hg.repository(repo.ui, repo.root)) + else: + raise error.RepoError(_("There is no Mercurial repository" + " here (.hg not found)")) class service(object): def init(self): util.set_signal_handler() - self.httpd = server.create_server(baseui, repo) + self.httpd = server.create_server(ui, app) if opts['port'] and not ui.verbose: return