# HG changeset patch # User Yuya Nishihara # Date 1446296265 -32400 # Node ID ea8e27e6098d1d29bd37850a8f38b94de587288f # Parent 25e4b2f000c53a9074d9351157a8d8f48222acb3 hgweb: move httpservice object from commands module This avoids the deep import of hgweb.server at the commands module. diff -r 25e4b2f000c5 -r ea8e27e6098d mercurial/commands.py --- a/mercurial/commands.py Wed Nov 25 14:25:33 2015 -0800 +++ b/mercurial/commands.py Sat Oct 31 21:57:45 2015 +0900 @@ -15,7 +15,6 @@ import archival, changegroup, cmdutil, hbisect import sshserver, hgweb import extensions -from hgweb import server as hgweb_server import merge as mergemod import minirst, revset, fileset import dagparser, context, simplemerge, graphmod, copies @@ -6001,52 +6000,9 @@ o = repo app = hgweb.hgweb(o, baseui=baseui) - service = httpservice(ui, app, opts) + service = hgweb.httpservice(ui, app, opts) cmdutil.service(opts, initfn=service.init, runfn=service.run) -class httpservice(object): - def __init__(self, ui, app, opts): - self.ui = ui - self.app = app - self.opts = opts - - def init(self): - util.setsignalhandler() - self.httpd = hgweb_server.create_server(self.ui, self.app) - - if self.opts['port'] and not self.ui.verbose: - return - - if self.httpd.prefix: - prefix = self.httpd.prefix.strip('/') + '/' - else: - prefix = '' - - port = ':%d' % self.httpd.port - if port == ':80': - port = '' - - bindaddr = self.httpd.addr - if bindaddr == '0.0.0.0': - bindaddr = '*' - elif ':' in bindaddr: # IPv6 - bindaddr = '[%s]' % bindaddr - - fqaddr = self.httpd.fqaddr - if ':' in fqaddr: - fqaddr = '[%s]' % fqaddr - if self.opts['port']: - write = self.ui.status - else: - write = self.ui.write - write(_('listening at http://%s%s/%s (bound to %s:%d)\n') % - (fqaddr, port, prefix, bindaddr, self.httpd.port)) - self.ui.flush() # avoid buffering of status message - - def run(self): - self.httpd.serve_forever() - - @command('^status|st', [('A', 'all', None, _('show status of all files')), ('m', 'modified', None, _('show only modified files')), diff -r 25e4b2f000c5 -r ea8e27e6098d mercurial/hgweb/__init__.py --- a/mercurial/hgweb/__init__.py Wed Nov 25 14:25:33 2015 -0800 +++ b/mercurial/hgweb/__init__.py Sat Oct 31 21:57:45 2015 +0900 @@ -10,9 +10,16 @@ import os +from ..i18n import _ + +from .. import ( + util, +) + from . import ( hgweb_mod, hgwebdir_mod, + server, ) def hgweb(config, name=None, baseui=None): @@ -35,3 +42,44 @@ def hgwebdir(config, baseui=None): return hgwebdir_mod.hgwebdir(config, baseui=baseui) +class httpservice(object): + def __init__(self, ui, app, opts): + self.ui = ui + self.app = app + self.opts = opts + + def init(self): + util.setsignalhandler() + self.httpd = server.create_server(self.ui, self.app) + + if self.opts['port'] and not self.ui.verbose: + return + + if self.httpd.prefix: + prefix = self.httpd.prefix.strip('/') + '/' + else: + prefix = '' + + port = ':%d' % self.httpd.port + if port == ':80': + port = '' + + bindaddr = self.httpd.addr + if bindaddr == '0.0.0.0': + bindaddr = '*' + elif ':' in bindaddr: # IPv6 + bindaddr = '[%s]' % bindaddr + + fqaddr = self.httpd.fqaddr + if ':' in fqaddr: + fqaddr = '[%s]' % fqaddr + if self.opts['port']: + write = self.ui.status + else: + write = self.ui.write + write(_('listening at http://%s%s/%s (bound to %s:%d)\n') % + (fqaddr, port, prefix, bindaddr, self.httpd.port)) + self.ui.flush() # avoid buffering of status message + + def run(self): + self.httpd.serve_forever()