changeset 6499 | 479847ccabe0 |
parent 5659 | 3da652f2039c |
child 6500 | a3175cd7dbec |
5666:9d6ad26fab10 | 6499:479847ccabe0 |
---|---|
13 """ |
13 """ |
14 |
14 |
15 from i18n import _ |
15 from i18n import _ |
16 import cStringIO, errno, getpass, popen2, re, shutil, sys, tempfile, strutil |
16 import cStringIO, errno, getpass, popen2, re, shutil, sys, tempfile, strutil |
17 import os, stat, threading, time, calendar, ConfigParser, locale, glob, osutil |
17 import os, stat, threading, time, calendar, ConfigParser, locale, glob, osutil |
18 import re, urlparse |
18 import re, urlparse, imp |
19 |
19 |
20 try: |
20 try: |
21 set = set |
21 set = set |
22 frozenset = frozenset |
22 frozenset = frozenset |
23 except NameError: |
23 except NameError: |
551 |
551 |
552 return (roots, match, (inc or exc or anypats) and True) |
552 return (roots, match, (inc or exc or anypats) and True) |
553 |
553 |
554 _hgexecutable = None |
554 _hgexecutable = None |
555 |
555 |
556 def main_is_frozen(): |
|
557 """return True if we are a frozen executable. |
|
558 |
|
559 The code supports py2exe (most common, Windows only) and tools/freeze |
|
560 (portable, not much used). |
|
561 """ |
|
562 return (hasattr(sys, "frozen") or # new py2exe |
|
563 hasattr(sys, "importers") or # old py2exe |
|
564 imp.is_frozen("__main__")) # tools/freeze |
|
565 |
|
556 def hgexecutable(): |
566 def hgexecutable(): |
557 """return location of the 'hg' executable. |
567 """return location of the 'hg' executable. |
558 |
568 |
559 Defaults to $HG or 'hg' in the search path. |
569 Defaults to $HG or 'hg' in the search path. |
560 """ |
570 """ |
561 if _hgexecutable is None: |
571 if _hgexecutable is None: |
562 set_hgexecutable(os.environ.get('HG') or find_exe('hg', 'hg')) |
572 if os.environ.has_key('HG'): |
573 set_hgexecutable(os.environ.get('HG')) |
|
574 elif main_is_frozen(): |
|
575 set_hgexecutable(sys.executable) |
|
576 else: |
|
577 sel_hgexecutable(find_exe('hg', 'hg')) |
|
563 return _hgexecutable |
578 return _hgexecutable |
564 |
579 |
565 def set_hgexecutable(path): |
580 def set_hgexecutable(path): |
566 """set location of the 'hg' executable""" |
581 """set location of the 'hg' executable""" |
567 global _hgexecutable |
582 global _hgexecutable |