Mercurial > hg-stable
annotate hg @ 12805:cae1c187abd4 stable
setup/hg: handle hg being a symlink when appending relative libdir to sys.path
Resolve symbolic links in the path to hg so that an hg that works when
invoked directly will also work when invoked via a symlink to it.
author | L. David Baron <dbaron@dbaron.org> |
---|---|
date | Thu, 21 Oct 2010 09:58:22 -0700 |
parents | 10da5a1f25dd |
children | 659f34b833b9 |
rev | line source |
---|---|
0
9117c6561b0b
Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff
changeset
|
1 #!/usr/bin/env python |
9117c6561b0b
Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff
changeset
|
2 # |
1698 | 3 # mercurial - scalable distributed SCM |
0
9117c6561b0b
Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff
changeset
|
4 # |
4635
63b9d2deed48
Updated copyright notices and add "and others" to "hg version"
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3877
diff
changeset
|
5 # Copyright 2005-2007 Matt Mackall <mpm@selenic.com> |
0
9117c6561b0b
Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff
changeset
|
6 # |
8225
46293a0c7e9f
updated license to be explicit about GPL version 2
Martin Geisler <mg@lazybytes.net>
parents:
7672
diff
changeset
|
7 # This software may be used and distributed according to the terms of the |
10263 | 8 # GNU General Public License version 2 or any later version. |
0
9117c6561b0b
Add back links from file revisions to changeset revisions
mpm@selenic.com
parents:
diff
changeset
|
9 |
12661
10da5a1f25dd
setup/hg: always load Mercurial from where it was installed.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
10263
diff
changeset
|
10 import os |
10da5a1f25dd
setup/hg: always load Mercurial from where it was installed.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
10263
diff
changeset
|
11 import sys |
10da5a1f25dd
setup/hg: always load Mercurial from where it was installed.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
10263
diff
changeset
|
12 |
10da5a1f25dd
setup/hg: always load Mercurial from where it was installed.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
10263
diff
changeset
|
13 libdir = '@LIBDIR@' |
10da5a1f25dd
setup/hg: always load Mercurial from where it was installed.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
10263
diff
changeset
|
14 |
10da5a1f25dd
setup/hg: always load Mercurial from where it was installed.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
10263
diff
changeset
|
15 if libdir != '@' 'LIBDIR' '@': |
10da5a1f25dd
setup/hg: always load Mercurial from where it was installed.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
10263
diff
changeset
|
16 if not os.path.isabs(libdir): |
12805
cae1c187abd4
setup/hg: handle hg being a symlink when appending relative libdir to sys.path
L. David Baron <dbaron@dbaron.org>
parents:
12661
diff
changeset
|
17 libdir = os.path.join(os.path.dirname(os.path.realpath(__file__)), |
cae1c187abd4
setup/hg: handle hg being a symlink when appending relative libdir to sys.path
L. David Baron <dbaron@dbaron.org>
parents:
12661
diff
changeset
|
18 libdir) |
12661
10da5a1f25dd
setup/hg: always load Mercurial from where it was installed.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
10263
diff
changeset
|
19 libdir = os.path.abspath(libdir) |
10da5a1f25dd
setup/hg: always load Mercurial from where it was installed.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
10263
diff
changeset
|
20 sys.path.insert(0, libdir) |
10da5a1f25dd
setup/hg: always load Mercurial from where it was installed.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
10263
diff
changeset
|
21 |
5197
55860a45bbf2
Enable demandimport only in scripts, not in importable modules (issue605)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
5178
diff
changeset
|
22 # enable importing on demand to reduce startup time |
7672
523c7816c33a
Give a useful message about PYTHONPATH if startup fails
Matt Mackall <mpm@selenic.com>
parents:
5531
diff
changeset
|
23 try: |
523c7816c33a
Give a useful message about PYTHONPATH if startup fails
Matt Mackall <mpm@selenic.com>
parents:
5531
diff
changeset
|
24 from mercurial import demandimport; demandimport.enable() |
523c7816c33a
Give a useful message about PYTHONPATH if startup fails
Matt Mackall <mpm@selenic.com>
parents:
5531
diff
changeset
|
25 except ImportError: |
523c7816c33a
Give a useful message about PYTHONPATH if startup fails
Matt Mackall <mpm@selenic.com>
parents:
5531
diff
changeset
|
26 import sys |
523c7816c33a
Give a useful message about PYTHONPATH if startup fails
Matt Mackall <mpm@selenic.com>
parents:
5531
diff
changeset
|
27 sys.stderr.write("abort: couldn't find mercurial libraries in [%s]\n" % |
523c7816c33a
Give a useful message about PYTHONPATH if startup fails
Matt Mackall <mpm@selenic.com>
parents:
5531
diff
changeset
|
28 ' '.join(sys.path)) |
523c7816c33a
Give a useful message about PYTHONPATH if startup fails
Matt Mackall <mpm@selenic.com>
parents:
5531
diff
changeset
|
29 sys.stderr.write("(check your install and PYTHONPATH)\n") |
523c7816c33a
Give a useful message about PYTHONPATH if startup fails
Matt Mackall <mpm@selenic.com>
parents:
5531
diff
changeset
|
30 sys.exit(-1) |
5197
55860a45bbf2
Enable demandimport only in scripts, not in importable modules (issue605)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
5178
diff
changeset
|
31 |
5531
a3fe91b4f6eb
Change standard streams mode to binary at hg startup
Patrick Mezard <pmezard@gmail.com>
parents:
5197
diff
changeset
|
32 import mercurial.util |
5178
18a9fbb5cd78
dispatch: move command dispatching into its own module
Matt Mackall <mpm@selenic.com>
parents:
4635
diff
changeset
|
33 import mercurial.dispatch |
5531
a3fe91b4f6eb
Change standard streams mode to binary at hg startup
Patrick Mezard <pmezard@gmail.com>
parents:
5197
diff
changeset
|
34 |
a3fe91b4f6eb
Change standard streams mode to binary at hg startup
Patrick Mezard <pmezard@gmail.com>
parents:
5197
diff
changeset
|
35 for fp in (sys.stdin, sys.stdout, sys.stderr): |
a3fe91b4f6eb
Change standard streams mode to binary at hg startup
Patrick Mezard <pmezard@gmail.com>
parents:
5197
diff
changeset
|
36 mercurial.util.set_binary(fp) |
a3fe91b4f6eb
Change standard streams mode to binary at hg startup
Patrick Mezard <pmezard@gmail.com>
parents:
5197
diff
changeset
|
37 |
5178
18a9fbb5cd78
dispatch: move command dispatching into its own module
Matt Mackall <mpm@selenic.com>
parents:
4635
diff
changeset
|
38 mercurial.dispatch.run() |