##// END OF EJS Templates
commands: refactor 'serve', extract the http service class
Mads Kiilerich -
r19919:e48c7045 default
parent child Browse files
Show More
@@ -5183,47 +5183,51 b' def serve(ui, repo, **opts):'
5183 o = repo
5183 o = repo
5184
5184
5185 app = hgweb.hgweb(o, baseui=baseui)
5185 app = hgweb.hgweb(o, baseui=baseui)
5186
5186 service = httpservice(ui, app, opts)
5187 class service(object):
5188 def init(self):
5189 util.setsignalhandler()
5190 self.httpd = hgweb_server.create_server(ui, app)
5191
5192 if opts['port'] and not ui.verbose:
5193 return
5194
5195 if self.httpd.prefix:
5196 prefix = self.httpd.prefix.strip('/') + '/'
5197 else:
5198 prefix = ''
5199
5200 port = ':%d' % self.httpd.port
5201 if port == ':80':
5202 port = ''
5203
5204 bindaddr = self.httpd.addr
5205 if bindaddr == '0.0.0.0':
5206 bindaddr = '*'
5207 elif ':' in bindaddr: # IPv6
5208 bindaddr = '[%s]' % bindaddr
5209
5210 fqaddr = self.httpd.fqaddr
5211 if ':' in fqaddr:
5212 fqaddr = '[%s]' % fqaddr
5213 if opts['port']:
5214 write = ui.status
5215 else:
5216 write = ui.write
5217 write(_('listening at http://%s%s/%s (bound to %s:%d)\n') %
5218 (fqaddr, port, prefix, bindaddr, self.httpd.port))
5219
5220 def run(self):
5221 self.httpd.serve_forever()
5222
5223 service = service()
5224
5225 cmdutil.service(opts, initfn=service.init, runfn=service.run)
5187 cmdutil.service(opts, initfn=service.init, runfn=service.run)
5226
5188
5189 class httpservice(object):
5190 def __init__(self, ui, app, opts):
5191 self.ui = ui
5192 self.app = app
5193 self.opts = opts
5194
5195 def init(self):
5196 util.setsignalhandler()
5197 self.httpd = hgweb_server.create_server(self.ui, self.app)
5198
5199 if self.opts['port'] and not self.ui.verbose:
5200 return
5201
5202 if self.httpd.prefix:
5203 prefix = self.httpd.prefix.strip('/') + '/'
5204 else:
5205 prefix = ''
5206
5207 port = ':%d' % self.httpd.port
5208 if port == ':80':
5209 port = ''
5210
5211 bindaddr = self.httpd.addr
5212 if bindaddr == '0.0.0.0':
5213 bindaddr = '*'
5214 elif ':' in bindaddr: # IPv6
5215 bindaddr = '[%s]' % bindaddr
5216
5217 fqaddr = self.httpd.fqaddr
5218 if ':' in fqaddr:
5219 fqaddr = '[%s]' % fqaddr
5220 if self.opts['port']:
5221 write = self.ui.status
5222 else:
5223 write = self.ui.write
5224 write(_('listening at http://%s%s/%s (bound to %s:%d)\n') %
5225 (fqaddr, port, prefix, bindaddr, self.httpd.port))
5226
5227 def run(self):
5228 self.httpd.serve_forever()
5229
5230
5227 @command('showconfig|debugconfig',
5231 @command('showconfig|debugconfig',
5228 [('u', 'untrusted', None, _('show untrusted configuration options'))],
5232 [('u', 'untrusted', None, _('show untrusted configuration options'))],
5229 _('[-u] [NAME]...'))
5233 _('[-u] [NAME]...'))
General Comments 0
You need to be logged in to leave comments. Login now