scmwindows.py
66 lines
| 1.9 KiB
| text/x-python
|
PythonLexer
/ mercurial / scmwindows.py
Gregory Szorc
|
r27481 | from __future__ import absolute_import | ||
Kevin Bullock
|
r18690 | import os | ||
Gregory Szorc
|
r27481 | |||
from . import ( | ||||
Pulkit Goyal
|
r30637 | encoding, | ||
Pulkit Goyal
|
r30612 | pycompat, | ||
Gregory Szorc
|
r27481 | util, | ||
Yuya Nishihara
|
r30309 | win32, | ||
Gregory Szorc
|
r27481 | ) | ||
Kevin Bullock
|
r18690 | |||
Pulkit Goyal
|
r29760 | try: | ||
Matt Harbison
|
r44156 | import _winreg as winreg # pytype: disable=import-error | ||
Augie Fackler
|
r43345 | |||
Pulkit Goyal
|
r29760 | winreg.CloseKey | ||
except ImportError: | ||||
Matt Harbison
|
r44156 | # py2 only | ||
import winreg # pytype: disable=import-error | ||||
Pulkit Goyal
|
r29760 | |||
Yuya Nishihara
|
r32078 | # MS-DOS 'more' is the only pager available by default on Windows. | ||
Augie Fackler
|
r43347 | fallbackpager = b'more' | ||
Yuya Nishihara
|
r32078 | |||
Augie Fackler
|
r43345 | |||
Kevin Bullock
|
r18690 | def systemrcpath(): | ||
'''return default os-specific hgrc search path''' | ||||
rcpath = [] | ||||
Yuya Nishihara
|
r37113 | filename = win32.executablepath() | ||
Kevin Bullock
|
r18690 | # Use mercurial.ini found in directory with hg.exe | ||
Augie Fackler
|
r43347 | progrc = os.path.join(os.path.dirname(filename), b'mercurial.ini') | ||
Mads Kiilerich
|
r26625 | rcpath.append(progrc) | ||
Kevin Bullock
|
r18690 | # Use hgrc.d found in directory with hg.exe | ||
Augie Fackler
|
r43347 | progrcd = os.path.join(os.path.dirname(filename), b'hgrc.d') | ||
Kevin Bullock
|
r18690 | if os.path.isdir(progrcd): | ||
Yuya Nishihara
|
r32203 | for f, kind in util.listdir(progrcd): | ||
Augie Fackler
|
r43347 | if f.endswith(b'.rc'): | ||
Kevin Bullock
|
r18690 | rcpath.append(os.path.join(progrcd, f)) | ||
# else look for a system rcpath in the registry | ||||
Augie Fackler
|
r43345 | value = util.lookupreg( | ||
Augie Fackler
|
r43347 | b'SOFTWARE\\Mercurial', None, winreg.HKEY_LOCAL_MACHINE | ||
Augie Fackler
|
r43345 | ) | ||
Kevin Bullock
|
r18690 | if not isinstance(value, str) or not value: | ||
return rcpath | ||||
value = util.localpath(value) | ||||
Pulkit Goyal
|
r30612 | for p in value.split(pycompat.ospathsep): | ||
Augie Fackler
|
r43347 | if p.lower().endswith(b'mercurial.ini'): | ||
Kevin Bullock
|
r18690 | rcpath.append(p) | ||
elif os.path.isdir(p): | ||||
Yuya Nishihara
|
r32203 | for f, kind in util.listdir(p): | ||
Augie Fackler
|
r43347 | if f.endswith(b'.rc'): | ||
Kevin Bullock
|
r18690 | rcpath.append(os.path.join(p, f)) | ||
return rcpath | ||||
Augie Fackler
|
r43345 | |||
Kevin Bullock
|
r18690 | def userrcpath(): | ||
'''return os-specific hgrc search path to the user dir''' | ||||
Augie Fackler
|
r43347 | home = os.path.expanduser(b'~') | ||
path = [os.path.join(home, b'mercurial.ini'), os.path.join(home, b'.hgrc')] | ||||
userprofile = encoding.environ.get(b'USERPROFILE') | ||||
Mads Kiilerich
|
r22583 | if userprofile and userprofile != home: | ||
Augie Fackler
|
r43347 | path.append(os.path.join(userprofile, b'mercurial.ini')) | ||
path.append(os.path.join(userprofile, b'.hgrc')) | ||||
Kevin Bullock
|
r18690 | return path | ||
Yuya Nishihara
|
r30309 | |||
Augie Fackler
|
r43345 | |||
Yuya Nishihara
|
r30314 | def termsize(ui): | ||
return win32.termsize() | ||||