equal
deleted
inserted
replaced
1 #!/usr/bin/env python |
1 #!/usr/bin/env python |
2 # |
2 # |
3 # Copyright 2005, 2006 by Intevation GmbH <intevation@intevation.de> |
3 # Copyright 2005-2007 by Intevation GmbH <intevation@intevation.de> |
4 # Author(s): |
4 # Author(s): |
5 # Thomas Arendsen Hein <thomas@intevation.de> |
5 # Thomas Arendsen Hein <thomas@intevation.de> |
6 # |
6 # |
7 # This software may be used and distributed according to the terms |
7 # This software may be used and distributed according to the terms |
8 # of the GNU General Public License, incorporated herein by reference. |
8 # of the GNU General Public License, incorporated herein by reference. |
23 |
23 |
24 You can use pattern matching of your normal shell, e.g.: |
24 You can use pattern matching of your normal shell, e.g.: |
25 command="cd repos && hg-ssh user/thomas/* projects/{mercurial,foo}" |
25 command="cd repos && hg-ssh user/thomas/* projects/{mercurial,foo}" |
26 """ |
26 """ |
27 |
27 |
28 from mercurial import commands |
28 from mercurial import dispatch |
29 |
29 |
30 import sys, os |
30 import sys, os |
31 |
31 |
32 cwd = os.getcwd() |
32 cwd = os.getcwd() |
33 allowed_paths = [os.path.normpath(os.path.join(cwd, os.path.expanduser(path))) |
33 allowed_paths = [os.path.normpath(os.path.join(cwd, os.path.expanduser(path))) |
36 |
36 |
37 if orig_cmd.startswith('hg -R ') and orig_cmd.endswith(' serve --stdio'): |
37 if orig_cmd.startswith('hg -R ') and orig_cmd.endswith(' serve --stdio'): |
38 path = orig_cmd[6:-14] |
38 path = orig_cmd[6:-14] |
39 repo = os.path.normpath(os.path.join(cwd, os.path.expanduser(path))) |
39 repo = os.path.normpath(os.path.join(cwd, os.path.expanduser(path))) |
40 if repo in allowed_paths: |
40 if repo in allowed_paths: |
41 commands.dispatch(['-R', repo, 'serve', '--stdio']) |
41 dispatch.dispatch(['-R', repo, 'serve', '--stdio']) |
42 else: |
42 else: |
43 sys.stderr.write("Illegal repository %r\n" % repo) |
43 sys.stderr.write("Illegal repository %r\n" % repo) |
44 sys.exit(-1) |
44 sys.exit(-1) |
45 else: |
45 else: |
46 sys.stderr.write("Illegal command %r\n" % orig_cmd) |
46 sys.stderr.write("Illegal command %r\n" % orig_cmd) |