10 from i18n import _, gettext |
10 from i18n import _, gettext |
11 import os, re, sys, difflib, time, tempfile |
11 import os, re, sys, difflib, time, tempfile |
12 import hg, util, revlog, bundlerepo, extensions, copies, error |
12 import hg, util, revlog, bundlerepo, extensions, copies, error |
13 import patch, help, mdiff, url, encoding, templatekw |
13 import patch, help, mdiff, url, encoding, templatekw |
14 import archival, changegroup, cmdutil, sshserver, hbisect |
14 import archival, changegroup, cmdutil, sshserver, hbisect |
15 from hgweb import server |
15 from hgweb import server, hgweb_mod, hgwebdir_mod |
16 import merge as merge_ |
16 import merge as merge_ |
17 import minirst |
17 import minirst |
18 |
18 |
19 # Commands start here, listed alphabetically |
19 # Commands start here, listed alphabetically |
20 |
20 |
2885 if opts.get('port'): |
2885 if opts.get('port'): |
2886 opts['port'] = int(opts.get('port')) |
2886 opts['port'] = int(opts.get('port')) |
2887 |
2887 |
2888 baseui = repo and repo.baseui or ui |
2888 baseui = repo and repo.baseui or ui |
2889 optlist = ("name templates style address port prefix ipv6" |
2889 optlist = ("name templates style address port prefix ipv6" |
2890 " accesslog errorlog webdir_conf certificate encoding") |
2890 " accesslog errorlog certificate encoding") |
2891 for o in optlist.split(): |
2891 for o in optlist.split(): |
2892 val = opts.get(o, '') |
2892 val = opts.get(o, '') |
2893 if val in (None, ''): # should check against default options instead |
2893 if val in (None, ''): # should check against default options instead |
2894 continue |
2894 continue |
2895 baseui.setconfig("web", o, val) |
2895 baseui.setconfig("web", o, val) |
2896 if repo and repo.ui != baseui: |
2896 if repo and repo.ui != baseui: |
2897 repo.ui.setconfig("web", o, val) |
2897 repo.ui.setconfig("web", o, val) |
2898 |
2898 |
2899 if repo is None and not ui.config("web", "webdir_conf"): |
2899 if opts.get('webdir_conf'): |
2900 raise error.RepoError(_("There is no Mercurial repository here" |
2900 app = hgwebdir_mod.hgwebdir(opts['webdir_conf'], ui) |
2901 " (.hg not found)")) |
2901 elif repo is not None: |
|
2902 app = hgweb_mod.hgweb(hg.repository(repo.ui, repo.root)) |
|
2903 else: |
|
2904 raise error.RepoError(_("There is no Mercurial repository" |
|
2905 " here (.hg not found)")) |
2902 |
2906 |
2903 class service(object): |
2907 class service(object): |
2904 def init(self): |
2908 def init(self): |
2905 util.set_signal_handler() |
2909 util.set_signal_handler() |
2906 self.httpd = server.create_server(baseui, repo) |
2910 self.httpd = server.create_server(ui, app) |
2907 |
2911 |
2908 if opts['port'] and not ui.verbose: |
2912 if opts['port'] and not ui.verbose: |
2909 return |
2913 return |
2910 |
2914 |
2911 if self.httpd.prefix: |
2915 if self.httpd.prefix: |