author | Jun Wu <quark@fb.com> |
Mon, 18 Dec 2017 14:37:00 -0800 | |
changeset 35452 | 488634db5928 |
parent 31857 | 08fbc97d1364 |
child 36730 | a22915edc279 |
permissions | -rw-r--r-- |
31685
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
1 |
# Test the config layer generated by environment variables |
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
2 |
|
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
3 |
from __future__ import absolute_import, print_function |
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
4 |
|
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
5 |
import os |
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
6 |
|
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
7 |
from mercurial import ( |
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
8 |
encoding, |
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
9 |
rcutil, |
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
10 |
ui as uimod, |
31857
08fbc97d1364
tests: print Unix style paths in *.py tests
Matt Harbison <matt_harbison@yahoo.com>
parents:
31685
diff
changeset
|
11 |
util, |
31685
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
12 |
) |
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
13 |
|
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
14 |
testtmp = encoding.environ['TESTTMP'] |
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
15 |
|
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
16 |
# prepare hgrc files |
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
17 |
def join(name): |
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
18 |
return os.path.join(testtmp, name) |
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
19 |
|
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
20 |
with open(join('sysrc'), 'w') as f: |
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
21 |
f.write('[ui]\neditor=e0\n[pager]\npager=p0\n') |
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
22 |
|
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
23 |
with open(join('userrc'), 'w') as f: |
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
24 |
f.write('[ui]\neditor=e1') |
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
25 |
|
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
26 |
# replace rcpath functions so they point to the files above |
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
27 |
def systemrcpath(): |
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
28 |
return [join('sysrc')] |
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
29 |
|
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
30 |
def userrcpath(): |
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
31 |
return [join('userrc')] |
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
32 |
|
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
33 |
rcutil.systemrcpath = systemrcpath |
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
34 |
rcutil.userrcpath = userrcpath |
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
35 |
os.path.isdir = lambda x: False # hack: do not load default.d/*.rc |
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
36 |
|
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
37 |
# utility to print configs |
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
38 |
def printconfigs(env): |
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
39 |
encoding.environ = env |
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
40 |
rcutil._rccomponents = None # reset cache |
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
41 |
ui = uimod.ui.load() |
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
42 |
for section, name, value in ui.walkconfig(): |
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
43 |
source = ui.configsource(section, name) |
31857
08fbc97d1364
tests: print Unix style paths in *.py tests
Matt Harbison <matt_harbison@yahoo.com>
parents:
31685
diff
changeset
|
44 |
print('%s.%s=%s # %s' % (section, name, value, util.pconvert(source))) |
31685
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
45 |
print('') |
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
46 |
|
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
47 |
# environment variable overrides |
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
48 |
printconfigs({}) |
d83e51654c8a
rcutil: let environ override system configs (BC)
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
49 |
printconfigs({'EDITOR': 'e2', 'PAGER': 'p2'}) |