comparison mercurial/rcutil.py @ 31685:d83e51654c8a

rcutil: let environ override system configs (BC) This is BC because system configs won't be able to override $EDITOR, $PAGER. The new behavior is arguably more rational.
author Jun Wu <quark@fb.com>
date Sun, 26 Mar 2017 21:33:37 -0700
parents 0be96ac9199a
children cf052cc5c2c2
comparison
equal deleted inserted replaced
31684:0be96ac9199a 31685:d83e51654c8a
74 74
75 type could be either 'path' or 'items', if type is 'path', obj is a string, 75 type could be either 'path' or 'items', if type is 'path', obj is a string,
76 and is the config file path. if type is 'items', obj is a list of (section, 76 and is the config file path. if type is 'items', obj is a list of (section,
77 name, value, source) that should fill the config directly. 77 name, value, source) that should fill the config directly.
78 ''' 78 '''
79 envrc = ('items', envrcitems())
80
79 global _rccomponents 81 global _rccomponents
80 if _rccomponents is None: 82 if _rccomponents is None:
81 if 'HGRCPATH' in encoding.environ: 83 if 'HGRCPATH' in encoding.environ:
82 _rccomponents = [] 84 # assume HGRCPATH is all about user configs so environments can be
85 # overridden.
86 _rccomponents = [envrc]
83 for p in encoding.environ['HGRCPATH'].split(pycompat.ospathsep): 87 for p in encoding.environ['HGRCPATH'].split(pycompat.ospathsep):
84 if not p: 88 if not p:
85 continue 89 continue
86 _rccomponents.extend(('path', p) for p in _expandrcpath(p)) 90 _rccomponents.extend(('path', p) for p in _expandrcpath(p))
87 else: 91 else:
88 paths = defaultrcpath() + systemrcpath() + userrcpath() 92 paths = defaultrcpath() + systemrcpath()
89 _rccomponents = [('path', os.path.normpath(p)) for p in paths] 93 _rccomponents = [('path', os.path.normpath(p)) for p in paths]
94 _rccomponents.append(envrc)
95 paths = userrcpath()
96 _rccomponents.extend(('path', os.path.normpath(p)) for p in paths)
90 return _rccomponents 97 return _rccomponents