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')], |