Mercurial > public > mercurial-scm > hg-stable
annotate contrib/check-config.py @ 44350:c577bb4a04d4
nodemap: have some python code writing a nodemap in persistent binary form
This python code aims to be as "simple" as possible. It is a reference
implementation of the data we are going to write on disk (and possibly,
later a way for pure python install to make sure the on disk data are up to
date).
It is not optimized for performance and rebuild the full data structure from
the index every time.
This is a stepping stone toward a persistent nodemap on disk.
Differential Revision: https://phab.mercurial-scm.org/D7834
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 15 Jan 2020 15:47:12 +0100 |
parents | 2372284d9457 |
children | c102b704edb5 |
rev | line source |
---|---|
25790
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
1 #!/usr/bin/env python |
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
2 # |
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
3 # check-config - a config flag documentation checker for Mercurial |
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
4 # |
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
5 # Copyright 2015 Matt Mackall <mpm@selenic.com> |
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
6 # |
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
7 # This software may be used and distributed according to the terms of the |
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
8 # GNU General Public License version 2 or any later version. |
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
9 |
28352
a92ee4d8a574
check-config: use absolute_import and print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27992
diff
changeset
|
10 from __future__ import absolute_import, print_function |
25790
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
11 import re |
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
12 import sys |
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
13 |
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
14 foundopts = {} |
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
15 documented = {} |
33197
5d8942dbe49e
check-config: syntax to allow inconsistent config values
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32867
diff
changeset
|
16 allowinconsistent = set() |
25790
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
17 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
18 configre = re.compile( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
19 br''' |
32865
e5a6a540ae63
check-config: use compiled regexp
Gregory Szorc <gregory.szorc@gmail.com>
parents:
28352
diff
changeset
|
20 # Function call |
32866
485b8e87e244
check-config: use named groups in regexp
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32865
diff
changeset
|
21 ui\.config(?P<ctype>|int|bool|list)\( |
32865
e5a6a540ae63
check-config: use compiled regexp
Gregory Szorc <gregory.szorc@gmail.com>
parents:
28352
diff
changeset
|
22 # First argument. |
32866
485b8e87e244
check-config: use named groups in regexp
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32865
diff
changeset
|
23 ['"](?P<section>\S+)['"],\s* |
32865
e5a6a540ae63
check-config: use compiled regexp
Gregory Szorc <gregory.szorc@gmail.com>
parents:
28352
diff
changeset
|
24 # Second argument |
32866
485b8e87e244
check-config: use named groups in regexp
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32865
diff
changeset
|
25 ['"](?P<option>\S+)['"](,\s+ |
485b8e87e244
check-config: use named groups in regexp
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32865
diff
changeset
|
26 (?:default=)?(?P<default>\S+?))? |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
27 \)''', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
28 re.VERBOSE | re.MULTILINE, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
29 ) |
32865
e5a6a540ae63
check-config: use compiled regexp
Gregory Szorc <gregory.szorc@gmail.com>
parents:
28352
diff
changeset
|
30 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
31 configwithre = re.compile( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
32 br''' |
32867
e9fc5550be46
check-config: look for ui.configwith
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32866
diff
changeset
|
33 ui\.config(?P<ctype>with)\( |
e9fc5550be46
check-config: look for ui.configwith
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32866
diff
changeset
|
34 # First argument is callback function. This doesn't parse robustly |
e9fc5550be46
check-config: look for ui.configwith
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32866
diff
changeset
|
35 # if it is e.g. a function call. |
e9fc5550be46
check-config: look for ui.configwith
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32866
diff
changeset
|
36 [^,]+,\s* |
e9fc5550be46
check-config: look for ui.configwith
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32866
diff
changeset
|
37 ['"](?P<section>\S+)['"],\s* |
e9fc5550be46
check-config: look for ui.configwith
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32866
diff
changeset
|
38 ['"](?P<option>\S+)['"](,\s+ |
e9fc5550be46
check-config: look for ui.configwith
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32866
diff
changeset
|
39 (?:default=)?(?P<default>\S+?))? |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
40 \)''', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
41 re.VERBOSE | re.MULTILINE, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
42 ) |
32867
e9fc5550be46
check-config: look for ui.configwith
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32866
diff
changeset
|
43 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
44 configpartialre = br"""ui\.config""" |
25790
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
45 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
46 ignorere = re.compile( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
47 br''' |
33197
5d8942dbe49e
check-config: syntax to allow inconsistent config values
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32867
diff
changeset
|
48 \#\s(?P<reason>internal|experimental|deprecated|developer|inconsistent)\s |
5d8942dbe49e
check-config: syntax to allow inconsistent config values
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32867
diff
changeset
|
49 config:\s(?P<config>\S+\.\S+)$ |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
50 ''', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
51 re.VERBOSE | re.MULTILINE, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
52 ) |
33197
5d8942dbe49e
check-config: syntax to allow inconsistent config values
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32867
diff
changeset
|
53 |
40259
5519697b71b3
contrib: fix up output in check-config.py to use strs to avoid b prefixes
Augie Fackler <augie@google.com>
parents:
39724
diff
changeset
|
54 if sys.version_info[0] > 2: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
55 |
40259
5519697b71b3
contrib: fix up output in check-config.py to use strs to avoid b prefixes
Augie Fackler <augie@google.com>
parents:
39724
diff
changeset
|
56 def mkstr(b): |
5519697b71b3
contrib: fix up output in check-config.py to use strs to avoid b prefixes
Augie Fackler <augie@google.com>
parents:
39724
diff
changeset
|
57 if isinstance(b, str): |
5519697b71b3
contrib: fix up output in check-config.py to use strs to avoid b prefixes
Augie Fackler <augie@google.com>
parents:
39724
diff
changeset
|
58 return b |
5519697b71b3
contrib: fix up output in check-config.py to use strs to avoid b prefixes
Augie Fackler <augie@google.com>
parents:
39724
diff
changeset
|
59 return b.decode('utf8') |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
60 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
61 |
40259
5519697b71b3
contrib: fix up output in check-config.py to use strs to avoid b prefixes
Augie Fackler <augie@google.com>
parents:
39724
diff
changeset
|
62 else: |
5519697b71b3
contrib: fix up output in check-config.py to use strs to avoid b prefixes
Augie Fackler <augie@google.com>
parents:
39724
diff
changeset
|
63 mkstr = lambda x: x |
5519697b71b3
contrib: fix up output in check-config.py to use strs to avoid b prefixes
Augie Fackler <augie@google.com>
parents:
39724
diff
changeset
|
64 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
65 |
25790
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
66 def main(args): |
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
67 for f in args: |
35960
2912bed9b0c7
py3: add b'' to literals in check-config.py
Pulkit Goyal <7895pulkit@gmail.com>
parents:
35959
diff
changeset
|
68 sect = b'' |
2912bed9b0c7
py3: add b'' to literals in check-config.py
Pulkit Goyal <7895pulkit@gmail.com>
parents:
35959
diff
changeset
|
69 prevname = b'' |
2912bed9b0c7
py3: add b'' to literals in check-config.py
Pulkit Goyal <7895pulkit@gmail.com>
parents:
35959
diff
changeset
|
70 confsect = b'' |
2912bed9b0c7
py3: add b'' to literals in check-config.py
Pulkit Goyal <7895pulkit@gmail.com>
parents:
35959
diff
changeset
|
71 carryover = b'' |
33570
e470f12d7d05
check-config: mention the file and line of the error
Ryan McElroy <rmcelroy@fb.com>
parents:
33197
diff
changeset
|
72 linenum = 0 |
35959
143d7b27b09c
check-config: specify the mode 'rb' to open the file
Pulkit Goyal <7895pulkit@gmail.com>
parents:
33570
diff
changeset
|
73 for l in open(f, 'rb'): |
33570
e470f12d7d05
check-config: mention the file and line of the error
Ryan McElroy <rmcelroy@fb.com>
parents:
33197
diff
changeset
|
74 linenum += 1 |
25790
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
75 |
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
76 # check topic-like bits |
41555
595a67a301ee
check-config: use raw strings for regular expressions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
40259
diff
changeset
|
77 m = re.match(br'\s*``(\S+)``', l) |
25790
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
78 if m: |
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
79 prevname = m.group(1) |
41555
595a67a301ee
check-config: use raw strings for regular expressions
Gregory Szorc <gregory.szorc@gmail.com>
parents:
40259
diff
changeset
|
80 if re.match(br'^\s*-+$', l): |
25790
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
81 sect = prevname |
35960
2912bed9b0c7
py3: add b'' to literals in check-config.py
Pulkit Goyal <7895pulkit@gmail.com>
parents:
35959
diff
changeset
|
82 prevname = b'' |
25790
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
83 |
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
84 if sect and prevname: |
35960
2912bed9b0c7
py3: add b'' to literals in check-config.py
Pulkit Goyal <7895pulkit@gmail.com>
parents:
35959
diff
changeset
|
85 name = sect + b'.' + prevname |
25790
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
86 documented[name] = 1 |
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
87 |
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
88 # check docstring bits |
35960
2912bed9b0c7
py3: add b'' to literals in check-config.py
Pulkit Goyal <7895pulkit@gmail.com>
parents:
35959
diff
changeset
|
89 m = re.match(br'^\s+\[(\S+)\]', l) |
25790
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
90 if m: |
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
91 confsect = m.group(1) |
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
92 continue |
35960
2912bed9b0c7
py3: add b'' to literals in check-config.py
Pulkit Goyal <7895pulkit@gmail.com>
parents:
35959
diff
changeset
|
93 m = re.match(br'^\s+(?:#\s*)?(\S+) = ', l) |
25790
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
94 if m: |
35960
2912bed9b0c7
py3: add b'' to literals in check-config.py
Pulkit Goyal <7895pulkit@gmail.com>
parents:
35959
diff
changeset
|
95 name = confsect + b'.' + m.group(1) |
25790
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
96 documented[name] = 1 |
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
97 |
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
98 # like the bugzilla extension |
35960
2912bed9b0c7
py3: add b'' to literals in check-config.py
Pulkit Goyal <7895pulkit@gmail.com>
parents:
35959
diff
changeset
|
99 m = re.match(br'^\s*(\S+\.\S+)$', l) |
25790
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
100 if m: |
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
101 documented[m.group(1)] = 1 |
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
102 |
27310
9c98fe1416c2
check-config: recognize convert style documentation
timeless <timeless@mozdev.org>
parents:
25849
diff
changeset
|
103 # like convert |
35960
2912bed9b0c7
py3: add b'' to literals in check-config.py
Pulkit Goyal <7895pulkit@gmail.com>
parents:
35959
diff
changeset
|
104 m = re.match(br'^\s*:(\S+\.\S+):\s+', l) |
27310
9c98fe1416c2
check-config: recognize convert style documentation
timeless <timeless@mozdev.org>
parents:
25849
diff
changeset
|
105 if m: |
9c98fe1416c2
check-config: recognize convert style documentation
timeless <timeless@mozdev.org>
parents:
25849
diff
changeset
|
106 documented[m.group(1)] = 1 |
9c98fe1416c2
check-config: recognize convert style documentation
timeless <timeless@mozdev.org>
parents:
25849
diff
changeset
|
107 |
25790
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
108 # quoted in help or docstrings |
35960
2912bed9b0c7
py3: add b'' to literals in check-config.py
Pulkit Goyal <7895pulkit@gmail.com>
parents:
35959
diff
changeset
|
109 m = re.match(br'.*?``(\S+\.\S+)``', l) |
25790
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
110 if m: |
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
111 documented[m.group(1)] = 1 |
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
112 |
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
113 # look for ignore markers |
33197
5d8942dbe49e
check-config: syntax to allow inconsistent config values
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32867
diff
changeset
|
114 m = ignorere.search(l) |
25790
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
115 if m: |
40259
5519697b71b3
contrib: fix up output in check-config.py to use strs to avoid b prefixes
Augie Fackler <augie@google.com>
parents:
39724
diff
changeset
|
116 if m.group('reason') == b'inconsistent': |
33197
5d8942dbe49e
check-config: syntax to allow inconsistent config values
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32867
diff
changeset
|
117 allowinconsistent.add(m.group('config')) |
5d8942dbe49e
check-config: syntax to allow inconsistent config values
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32867
diff
changeset
|
118 else: |
5d8942dbe49e
check-config: syntax to allow inconsistent config values
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32867
diff
changeset
|
119 documented[m.group('config')] = 1 |
25790
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
120 |
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
121 # look for code-like bits |
27313
9d155accd8f1
check-config: handle multiline config
timeless <timeless@mozdev.org>
parents:
27312
diff
changeset
|
122 line = carryover + l |
32867
e9fc5550be46
check-config: look for ui.configwith
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32866
diff
changeset
|
123 m = configre.search(line) or configwithre.search(line) |
25790
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
124 if m: |
32866
485b8e87e244
check-config: use named groups in regexp
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32865
diff
changeset
|
125 ctype = m.group('ctype') |
25790
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
126 if not ctype: |
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
127 ctype = 'str' |
39724
fe28267d5223
py3: byteify contrib/check-config.py
Matt Harbison <matt_harbison@yahoo.com>
parents:
35960
diff
changeset
|
128 name = m.group('section') + b"." + m.group('option') |
32866
485b8e87e244
check-config: use named groups in regexp
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32865
diff
changeset
|
129 default = m.group('default') |
40259
5519697b71b3
contrib: fix up output in check-config.py to use strs to avoid b prefixes
Augie Fackler <augie@google.com>
parents:
39724
diff
changeset
|
130 if default in ( |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
131 None, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
132 b'False', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
133 b'None', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
134 b'0', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
135 b'[]', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
136 b'""', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
137 b"''", |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
138 ): |
39724
fe28267d5223
py3: byteify contrib/check-config.py
Matt Harbison <matt_harbison@yahoo.com>
parents:
35960
diff
changeset
|
139 default = b'' |
35960
2912bed9b0c7
py3: add b'' to literals in check-config.py
Pulkit Goyal <7895pulkit@gmail.com>
parents:
35959
diff
changeset
|
140 if re.match(b'[a-z.]+$', default): |
39724
fe28267d5223
py3: byteify contrib/check-config.py
Matt Harbison <matt_harbison@yahoo.com>
parents:
35960
diff
changeset
|
141 default = b'<variable>' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
142 if ( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
143 name in foundopts |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
144 and (ctype, default) != foundopts[name] |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
145 and name not in allowinconsistent |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
146 ): |
40259
5519697b71b3
contrib: fix up output in check-config.py to use strs to avoid b prefixes
Augie Fackler <augie@google.com>
parents:
39724
diff
changeset
|
147 print(mkstr(l.rstrip())) |
5519697b71b3
contrib: fix up output in check-config.py to use strs to avoid b prefixes
Augie Fackler <augie@google.com>
parents:
39724
diff
changeset
|
148 fctype, fdefault = foundopts[name] |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
149 print( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
150 "conflict on %s: %r != %r" |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
151 % ( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
152 mkstr(name), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
153 (mkstr(ctype), mkstr(default)), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
154 (mkstr(fctype), mkstr(fdefault)), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
155 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
156 ) |
40259
5519697b71b3
contrib: fix up output in check-config.py to use strs to avoid b prefixes
Augie Fackler <augie@google.com>
parents:
39724
diff
changeset
|
157 print("at %s:%d:" % (mkstr(f), linenum)) |
25790
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
158 foundopts[name] = (ctype, default) |
39724
fe28267d5223
py3: byteify contrib/check-config.py
Matt Harbison <matt_harbison@yahoo.com>
parents:
35960
diff
changeset
|
159 carryover = b'' |
27313
9d155accd8f1
check-config: handle multiline config
timeless <timeless@mozdev.org>
parents:
27312
diff
changeset
|
160 else: |
9d155accd8f1
check-config: handle multiline config
timeless <timeless@mozdev.org>
parents:
27312
diff
changeset
|
161 m = re.search(configpartialre, line) |
9d155accd8f1
check-config: handle multiline config
timeless <timeless@mozdev.org>
parents:
27312
diff
changeset
|
162 if m: |
9d155accd8f1
check-config: handle multiline config
timeless <timeless@mozdev.org>
parents:
27312
diff
changeset
|
163 carryover = line |
9d155accd8f1
check-config: handle multiline config
timeless <timeless@mozdev.org>
parents:
27312
diff
changeset
|
164 else: |
39724
fe28267d5223
py3: byteify contrib/check-config.py
Matt Harbison <matt_harbison@yahoo.com>
parents:
35960
diff
changeset
|
165 carryover = b'' |
25790
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
166 |
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
167 for name in sorted(foundopts): |
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
168 if name not in documented: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
169 if not ( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
170 name.startswith(b"devel.") |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
171 or name.startswith(b"experimental.") |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
172 or name.startswith(b"debug.") |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
173 ): |
25790
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
174 ctype, default = foundopts[name] |
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
175 if default: |
40259
5519697b71b3
contrib: fix up output in check-config.py to use strs to avoid b prefixes
Augie Fackler <augie@google.com>
parents:
39724
diff
changeset
|
176 if isinstance(default, bytes): |
5519697b71b3
contrib: fix up output in check-config.py to use strs to avoid b prefixes
Augie Fackler <augie@google.com>
parents:
39724
diff
changeset
|
177 default = mkstr(default) |
25790
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
178 default = ' [%s]' % default |
40259
5519697b71b3
contrib: fix up output in check-config.py to use strs to avoid b prefixes
Augie Fackler <augie@google.com>
parents:
39724
diff
changeset
|
179 elif isinstance(default, bytes): |
5519697b71b3
contrib: fix up output in check-config.py to use strs to avoid b prefixes
Augie Fackler <augie@google.com>
parents:
39724
diff
changeset
|
180 default = mkstr(default) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
181 print( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
182 "undocumented: %s (%s)%s" |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
183 % (mkstr(name), mkstr(ctype), default) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
184 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41555
diff
changeset
|
185 |
25790
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
186 |
db5b6a1c064d
check-config: add config option checker
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
187 if __name__ == "__main__": |
27992
8f244b75cc5e
tests: execute check-config.py without xargs
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
27313
diff
changeset
|
188 if len(sys.argv) > 1: |
8f244b75cc5e
tests: execute check-config.py without xargs
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
27313
diff
changeset
|
189 sys.exit(main(sys.argv[1:])) |
8f244b75cc5e
tests: execute check-config.py without xargs
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
27313
diff
changeset
|
190 else: |
8f244b75cc5e
tests: execute check-config.py without xargs
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
27313
diff
changeset
|
191 sys.exit(main([l.rstrip() for l in sys.stdin])) |