Mercurial > public > mercurial-scm > hg-stable
diff mercurial/commands.py @ 603:bc5d058e65e9
[PATCH] Get "hg serve" to print the URL being served
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
[PATCH] Get "hg serve" to print the URL being served
From: Bryan O'Sullivan <bos@serpentine.com>
If invoked with verbosity, print the URL at which we are serving.
Useful if you bind to any port with "-p 0", and need to know what port
the server is listening on.
manifest hash: d317225606fbd2ec5819e1f266575b0485dfba79
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCyL9hywK+sNU5EO8RAjFQAJoDBRl5VoGIklxA1PdFGCt8Jb3iMQCeILeD
XAwnnSCy/IQ/MDfYf6z7oWI=
=FNVC
-----END PGP SIGNATURE-----
author | mpm@selenic.com |
---|---|
date | Sun, 03 Jul 2005 20:47:29 -0800 |
parents | 9a8daeff0ffa |
children | 40a66d464ac2 |
line wrap: on
line diff
--- a/mercurial/commands.py Sun Jul 03 20:33:35 2005 -0800 +++ b/mercurial/commands.py Sun Jul 03 20:47:29 2005 -0800 @@ -8,7 +8,7 @@ import os, re, sys, signal import fancyopts, ui, hg, util from demandload import * -demandload(globals(), "mdiff time hgweb traceback random signal errno version") +demandload(globals(), "mdiff time hgweb traceback random signal socket errno version") class UnknownCommand(Exception): pass @@ -793,8 +793,21 @@ def serve(ui, repo, **opts): """export the repository via HTTP""" - hgweb.server(repo.root, opts["name"], opts["templates"], - opts["address"], opts["port"]) + httpd = hgweb.create_server(repo.root, opts["name"], opts["templates"], + opts["address"], opts["port"]) + if ui.verbose: + addr, port = httpd.socket.getsockname() + if addr == '0.0.0.0': + addr = socket.gethostname() + else: + try: + addr = socket.gethostbyaddr(addr)[0] + except: pass + if port != 80: + ui.status('listening on http://%s:%d/\n' % (addr, port)) + else: + ui.status('listening on http://%s/\n' % addr) + httpd.serve_forever() def status(ui, repo): '''show changed files in the working directory