mercurial/commands.py
changeset 605 8e82fd763be2
parent 604 40a66d464ac2
child 607 94744f6fe0e7
equal deleted inserted replaced
604:40a66d464ac2 605:8e82fd763be2
   792     """print the root (top) of the current working dir"""
   792     """print the root (top) of the current working dir"""
   793     ui.write(repo.root + "\n")
   793     ui.write(repo.root + "\n")
   794 
   794 
   795 def serve(ui, repo, **opts):
   795 def serve(ui, repo, **opts):
   796     """export the repository via HTTP"""
   796     """export the repository via HTTP"""
       
   797     def openlog(opt, default):
       
   798         if opts[opt] and opts[opt] != '-': return open(opts[opt], 'w')
       
   799         else: return default
   797     httpd = hgweb.create_server(repo.root, opts["name"], opts["templates"],
   800     httpd = hgweb.create_server(repo.root, opts["name"], opts["templates"],
   798                                 opts["address"], opts["port"])
   801                                 opts["address"], opts["port"],
       
   802                                 openlog('accesslog', sys.stdout),
       
   803                                 openlog('errorlog', sys.stderr))
   799     if ui.verbose:
   804     if ui.verbose:
   800         addr, port = httpd.socket.getsockname()
   805         addr, port = httpd.socket.getsockname()
   801         if addr == '0.0.0.0':
   806         if addr == '0.0.0.0':
   802             addr = socket.gethostname()
   807             addr = socket.gethostname()
   803         else:
   808         else:
   804             try:
   809             try:
   805                 addr = socket.gethostbyaddr(addr)[0]
   810                 addr = socket.gethostbyaddr(addr)[0]
   806             except: pass
   811             except: pass
   807         if port != 80:
   812         if port != 80:
   808             ui.status('listening on http://%s:%d/\n' % (addr, port))
   813             ui.status('listening at http://%s:%d/\n' % (addr, port))
   809         else:
   814         else:
   810             ui.status('listening on http://%s/\n' % addr)
   815             ui.status('listening at http://%s/\n' % addr)
   811     httpd.serve_forever()
   816     httpd.serve_forever()
   812 
   817 
   813 def status(ui, repo):
   818 def status(ui, repo):
   814     '''show changed files in the working directory
   819     '''show changed files in the working directory
   815 
   820 
   971     "^revert": (revert,
   976     "^revert": (revert,
   972                [("n", "nonrecursive", None, "don't recurse into subdirs"),
   977                [("n", "nonrecursive", None, "don't recurse into subdirs"),
   973                 ("r", "rev", "", "revision")],
   978                 ("r", "rev", "", "revision")],
   974                "hg revert [files|dirs]"),
   979                "hg revert [files|dirs]"),
   975     "root": (root, [], "hg root"),
   980     "root": (root, [], "hg root"),
   976     "^serve": (serve, [('p', 'port', 8000, 'listen port'),
   981     "^serve": (serve, [('A', 'accesslog', '', 'access log file'),
   977                       ('a', 'address', '', 'interface address'),
   982                        ('E', 'errorlog', '', 'error log file'),
   978                       ('n', 'name', os.getcwd(), 'repository name'),
   983                        ('p', 'port', 8000, 'listen port'),
   979                       ('t', 'templates', "", 'template map')],
   984                        ('a', 'address', '', 'interface address'),
       
   985                        ('n', 'name', os.getcwd(), 'repository name'),
       
   986                        ('t', 'templates', "", 'template map')],
   980               "hg serve [options]"),
   987               "hg serve [options]"),
   981     "^status": (status, [], 'hg status'),
   988     "^status": (status, [], 'hg status'),
   982     "tag": (tag,  [('t', 'text', "", 'commit text'),
   989     "tag": (tag,  [('t', 'text', "", 'commit text'),
   983                    ('d', 'date', "", 'date code'),
   990                    ('d', 'date', "", 'date code'),
   984                    ('u', 'user', "", 'user')],
   991                    ('u', 'user', "", 'user')],