##// END OF EJS Templates
templater: give better error message for invalid engine type...
templater: give better error message for invalid engine type Before, KeyError was caught at changeset_templater._show(), which said "no key named '%s'" as it was intended to catch the KeyError of unknown map key. Instead, we should catch KeyError explicitly for better error indication. For those who don't know what the template engine is (read "everyone"), it is hidden extension feature that allows switching template syntax in map file. See d8c5a7f25a40 for details.

File last commit:

r27481:029f0275 default
r28831:6b86ce3e default
Show More
scmwindows.py
48 lines | 1.6 KiB | text/x-python | PythonLexer
from __future__ import absolute_import
import _winreg
import os
from . import (
osutil,
util,
)
def systemrcpath():
'''return default os-specific hgrc search path'''
rcpath = []
filename = util.executablepath()
# Use mercurial.ini found in directory with hg.exe
progrc = os.path.join(os.path.dirname(filename), 'mercurial.ini')
rcpath.append(progrc)
# Use hgrc.d found in directory with hg.exe
progrcd = os.path.join(os.path.dirname(filename), 'hgrc.d')
if os.path.isdir(progrcd):
for f, kind in osutil.listdir(progrcd):
if f.endswith('.rc'):
rcpath.append(os.path.join(progrcd, f))
# else look for a system rcpath in the registry
value = util.lookupreg('SOFTWARE\\Mercurial', None,
_winreg.HKEY_LOCAL_MACHINE)
if not isinstance(value, str) or not value:
return rcpath
value = util.localpath(value)
for p in value.split(os.pathsep):
if p.lower().endswith('mercurial.ini'):
rcpath.append(p)
elif os.path.isdir(p):
for f, kind in osutil.listdir(p):
if f.endswith('.rc'):
rcpath.append(os.path.join(p, f))
return rcpath
def userrcpath():
'''return os-specific hgrc search path to the user dir'''
home = os.path.expanduser('~')
path = [os.path.join(home, 'mercurial.ini'),
os.path.join(home, '.hgrc')]
userprofile = os.environ.get('USERPROFILE')
if userprofile and userprofile != home:
path.append(os.path.join(userprofile, 'mercurial.ini'))
path.append(os.path.join(userprofile, '.hgrc'))
return path