mercurial/commands.py
changeset 27138 ea8e27e6098d
parent 27135 cc9d49160adc
child 27139 d73f23344dc7
equal deleted inserted replaced
27137:25e4b2f000c5 27138:ea8e27e6098d
    13 import hg, scmutil, util, revlog, copies, error, bookmarks
    13 import hg, scmutil, util, revlog, copies, error, bookmarks
    14 import patch, help, encoding, templatekw, discovery
    14 import patch, help, encoding, templatekw, discovery
    15 import archival, changegroup, cmdutil, hbisect
    15 import archival, changegroup, cmdutil, hbisect
    16 import sshserver, hgweb
    16 import sshserver, hgweb
    17 import extensions
    17 import extensions
    18 from hgweb import server as hgweb_server
       
    19 import merge as mergemod
    18 import merge as mergemod
    20 import minirst, revset, fileset
    19 import minirst, revset, fileset
    21 import dagparser, context, simplemerge, graphmod, copies
    20 import dagparser, context, simplemerge, graphmod, copies
    22 import random, operator
    21 import random, operator
    23 import setdiscovery, treediscovery, dagutil, pvec, localrepo, destutil
    22 import setdiscovery, treediscovery, dagutil, pvec, localrepo, destutil
  5999             raise error.RepoError(_("there is no Mercurial repository"
  5998             raise error.RepoError(_("there is no Mercurial repository"
  6000                                     " here (.hg not found)"))
  5999                                     " here (.hg not found)"))
  6001         o = repo
  6000         o = repo
  6002 
  6001 
  6003     app = hgweb.hgweb(o, baseui=baseui)
  6002     app = hgweb.hgweb(o, baseui=baseui)
  6004     service = httpservice(ui, app, opts)
  6003     service = hgweb.httpservice(ui, app, opts)
  6005     cmdutil.service(opts, initfn=service.init, runfn=service.run)
  6004     cmdutil.service(opts, initfn=service.init, runfn=service.run)
  6006 
       
  6007 class httpservice(object):
       
  6008     def __init__(self, ui, app, opts):
       
  6009         self.ui = ui
       
  6010         self.app = app
       
  6011         self.opts = opts
       
  6012 
       
  6013     def init(self):
       
  6014         util.setsignalhandler()
       
  6015         self.httpd = hgweb_server.create_server(self.ui, self.app)
       
  6016 
       
  6017         if self.opts['port'] and not self.ui.verbose:
       
  6018             return
       
  6019 
       
  6020         if self.httpd.prefix:
       
  6021             prefix = self.httpd.prefix.strip('/') + '/'
       
  6022         else:
       
  6023             prefix = ''
       
  6024 
       
  6025         port = ':%d' % self.httpd.port
       
  6026         if port == ':80':
       
  6027             port = ''
       
  6028 
       
  6029         bindaddr = self.httpd.addr
       
  6030         if bindaddr == '0.0.0.0':
       
  6031             bindaddr = '*'
       
  6032         elif ':' in bindaddr: # IPv6
       
  6033             bindaddr = '[%s]' % bindaddr
       
  6034 
       
  6035         fqaddr = self.httpd.fqaddr
       
  6036         if ':' in fqaddr:
       
  6037             fqaddr = '[%s]' % fqaddr
       
  6038         if self.opts['port']:
       
  6039             write = self.ui.status
       
  6040         else:
       
  6041             write = self.ui.write
       
  6042         write(_('listening at http://%s%s/%s (bound to %s:%d)\n') %
       
  6043               (fqaddr, port, prefix, bindaddr, self.httpd.port))
       
  6044         self.ui.flush()  # avoid buffering of status message
       
  6045 
       
  6046     def run(self):
       
  6047         self.httpd.serve_forever()
       
  6048 
       
  6049 
  6005 
  6050 @command('^status|st',
  6006 @command('^status|st',
  6051     [('A', 'all', None, _('show status of all files')),
  6007     [('A', 'all', None, _('show status of all files')),
  6052     ('m', 'modified', None, _('show only modified files')),
  6008     ('m', 'modified', None, _('show only modified files')),
  6053     ('a', 'added', None, _('show only added files')),
  6009     ('a', 'added', None, _('show only added files')),