##// END OF EJS Templates
util: introduce datapath for getting the location of supporting data files...
Mads Kiilerich -
r22633:92b54547 default
parent child Browse files
Show More
@@ -6,7 +6,7 b''
6 # GNU General Public License version 2 or any later version.
6 # GNU General Public License version 2 or any later version.
7
7
8 from i18n import gettext, _
8 from i18n import gettext, _
9 import itertools, sys, os
9 import itertools, os
10 import error
10 import error
11 import extensions, revset, fileset, templatekw, templatefilters, filemerge
11 import extensions, revset, fileset, templatekw, templatefilters, filemerge
12 import encoding, util, minirst
12 import encoding, util, minirst
@@ -129,14 +129,8 b' def loaddoc(topic):'
129 """Return a delayed loader for help/topic.txt."""
129 """Return a delayed loader for help/topic.txt."""
130
130
131 def loader():
131 def loader():
132 if util.mainfrozen():
133 module = sys.executable
134 else:
135 module = __file__
136 base = os.path.dirname(module)
137
138 for dir in ('.', '..'):
132 for dir in ('.', '..'):
139 docdir = os.path.join(base, dir, 'help')
133 docdir = os.path.join(util.datapath, dir, 'help')
140 if os.path.isdir(docdir):
134 if os.path.isdir(docdir):
141 break
135 break
142
136
@@ -6,7 +6,7 b''
6 # GNU General Public License version 2 or any later version.
6 # GNU General Public License version 2 or any later version.
7
7
8 from i18n import _
8 from i18n import _
9 import sys, os, re
9 import os, re
10 import util, config, templatefilters, templatekw, parser, error
10 import util, config, templatefilters, templatekw, parser, error
11 import revset as revsetmod
11 import revset as revsetmod
12 import types
12 import types
@@ -715,17 +715,12 b' def templatepath(name=None):'
715 returns None if not found.'''
715 returns None if not found.'''
716 normpaths = []
716 normpaths = []
717
717
718 # executable version (py2exe) doesn't support __file__
719 if util.mainfrozen():
720 module = sys.executable
721 else:
722 module = __file__
723 for f in path:
718 for f in path:
724 if f.startswith('/'):
719 if f.startswith('/'):
725 p = f
720 p = f
726 else:
721 else:
727 fl = f.split('/')
722 fl = f.split('/')
728 p = os.path.join(os.path.dirname(module), *fl)
723 p = os.path.join(util.datapath, *fl)
729 if name:
724 if name:
730 p = os.path.join(p, name)
725 p = os.path.join(p, name)
731 if name and os.path.exists(p):
726 if name and os.path.exists(p):
@@ -460,6 +460,13 b' def mainfrozen():'
460 safehasattr(sys, "importers") or # old py2exe
460 safehasattr(sys, "importers") or # old py2exe
461 imp.is_frozen("__main__")) # tools/freeze
461 imp.is_frozen("__main__")) # tools/freeze
462
462
463 # the location of data files matching the source code
464 if mainfrozen():
465 # executable version (py2exe) doesn't support __file__
466 datapath = os.path.dirname(sys.executable)
467 else:
468 datapath = os.path.dirname(__file__)
469
463 _hgexecutable = None
470 _hgexecutable = None
464
471
465 def hgexecutable():
472 def hgexecutable():
General Comments 0
You need to be logged in to leave comments. Login now