Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/commands.py @ 2127:8a85dbbadddf
Allow 'hg serve --webdir-conf foo' to be run outside a repository.
author | Thomas Arendsen Hein <thomas@intevation.de> |
---|---|
date | Tue, 25 Apr 2006 19:38:19 +0200 |
parents | 3610d9468b1e |
children | ef81e34ad674 |
comparison
equal
deleted
inserted
replaced
2126:2e77f7852e82 | 2127:8a85dbbadddf |
---|---|
2493 By default, the server logs accesses to stdout and errors to | 2493 By default, the server logs accesses to stdout and errors to |
2494 stderr. Use the "-A" and "-E" options to log to files. | 2494 stderr. Use the "-A" and "-E" options to log to files. |
2495 """ | 2495 """ |
2496 | 2496 |
2497 if opts["stdio"]: | 2497 if opts["stdio"]: |
2498 if repo is None: | |
2499 raise hg.RepoError(_('no repo found')) | |
2498 fin, fout = sys.stdin, sys.stdout | 2500 fin, fout = sys.stdin, sys.stdout |
2499 sys.stdout = sys.stderr | 2501 sys.stdout = sys.stderr |
2500 | 2502 |
2501 # Prevent insertion/deletion of CRs | 2503 # Prevent insertion/deletion of CRs |
2502 util.set_binary(fin) | 2504 util.set_binary(fin) |
2570 " accesslog errorlog webdir_conf") | 2572 " accesslog errorlog webdir_conf") |
2571 for o in optlist.split(): | 2573 for o in optlist.split(): |
2572 if opts[o]: | 2574 if opts[o]: |
2573 ui.setconfig("web", o, opts[o]) | 2575 ui.setconfig("web", o, opts[o]) |
2574 | 2576 |
2577 if repo is None and not ui.config("web", "webdir_conf"): | |
2578 raise hg.RepoError(_('no repo found')) | |
2579 | |
2575 if opts['daemon'] and not opts['daemon_pipefds']: | 2580 if opts['daemon'] and not opts['daemon_pipefds']: |
2576 rfd, wfd = os.pipe() | 2581 rfd, wfd = os.pipe() |
2577 args = sys.argv[:] | 2582 args = sys.argv[:] |
2578 args.append('--daemon-pipefds=%d,%d' % (rfd, wfd)) | 2583 args.append('--daemon-pipefds=%d,%d' % (rfd, wfd)) |
2579 pid = os.spawnvp(os.P_NOWAIT | getattr(os, 'P_DETACH', 0), | 2584 pid = os.spawnvp(os.P_NOWAIT | getattr(os, 'P_DETACH', 0), |
2581 os.close(wfd) | 2586 os.close(wfd) |
2582 os.read(rfd, 1) | 2587 os.read(rfd, 1) |
2583 os._exit(0) | 2588 os._exit(0) |
2584 | 2589 |
2585 try: | 2590 try: |
2586 httpd = hgweb.create_server(repo) | 2591 httpd = hgweb.create_server(ui, repo) |
2587 except socket.error, inst: | 2592 except socket.error, inst: |
2588 raise util.Abort(_('cannot start server: ') + inst.args[1]) | 2593 raise util.Abort(_('cannot start server: ') + inst.args[1]) |
2589 | 2594 |
2590 if ui.verbose: | 2595 if ui.verbose: |
2591 addr, port = httpd.socket.getsockname() | 2596 addr, port = httpd.socket.getsockname() |
3200 ('h', 'help', None, _('display help and exit')), | 3205 ('h', 'help', None, _('display help and exit')), |
3201 ] | 3206 ] |
3202 | 3207 |
3203 norepo = ("clone init version help debugancestor debugcomplete debugdata" | 3208 norepo = ("clone init version help debugancestor debugcomplete debugdata" |
3204 " debugindex debugindexdot") | 3209 " debugindex debugindexdot") |
3205 optionalrepo = ("paths debugconfig") | 3210 optionalrepo = ("paths serve debugconfig") |
3206 | 3211 |
3207 def findpossible(cmd): | 3212 def findpossible(cmd): |
3208 """ | 3213 """ |
3209 Return cmd -> (aliases, command table entry) | 3214 Return cmd -> (aliases, command table entry) |
3210 for each matching command. | 3215 for each matching command. |