Show More
@@ -15,7 +15,7 b' platform-specific details from the core.' | |||
|
15 | 15 | from i18n import _ |
|
16 | 16 | import cStringIO, errno, getpass, re, shutil, sys, tempfile |
|
17 | 17 | import os, stat, threading, time, calendar, ConfigParser, locale, glob, osutil |
|
18 | import urlparse | |
|
18 | import imp, urlparse | |
|
19 | 19 | |
|
20 | 20 | # Python compatibility |
|
21 | 21 | |
@@ -563,13 +563,29 b' def _matcher(canonroot, cwd, names, inc,' | |||
|
563 | 563 | |
|
564 | 564 | _hgexecutable = None |
|
565 | 565 | |
|
566 | def main_is_frozen(): | |
|
567 | """return True if we are a frozen executable. | |
|
568 | ||
|
569 | The code supports py2exe (most common, Windows only) and tools/freeze | |
|
570 | (portable, not much used). | |
|
571 | """ | |
|
572 | return (hasattr(sys, "frozen") or # new py2exe | |
|
573 | hasattr(sys, "importers") or # old py2exe | |
|
574 | imp.is_frozen("__main__")) # tools/freeze | |
|
575 | ||
|
566 | 576 | def hgexecutable(): |
|
567 | 577 | """return location of the 'hg' executable. |
|
568 | 578 | |
|
569 | 579 | Defaults to $HG or 'hg' in the search path. |
|
570 | 580 | """ |
|
571 | 581 | if _hgexecutable is None: |
|
572 | set_hgexecutable(os.environ.get('HG') or find_exe('hg', 'hg')) | |
|
582 | hg = os.environ.get('HG') | |
|
583 | if hg: | |
|
584 | set_hgexecutable(hg) | |
|
585 | elif main_is_frozen(): | |
|
586 | set_hgexecutable(sys.executable) | |
|
587 | else: | |
|
588 | set_hgexecutable(find_exe('hg', 'hg')) | |
|
573 | 589 | return _hgexecutable |
|
574 | 590 | |
|
575 | 591 | def set_hgexecutable(path): |
General Comments 0
You need to be logged in to leave comments.
Login now