##// END OF EJS Templates
check-config: handle multiline config
timeless -
r27313:9d155acc default
parent child Browse files
Show More
@@ -13,14 +13,16 b' import sys'
13 foundopts = {}
13 foundopts = {}
14 documented = {}
14 documented = {}
15
15
16 configre = (r"""ui\.config(|int|bool|list)\(['"](\S+)['"], ?"""
16 configre = (r"""ui\.config(|int|bool|list)\(['"](\S+)['"],\s*"""
17 r"""['"](\S+)['"](,\s(?:default=)?(\S+?))?\)""")
17 r"""['"](\S+)['"](,\s+(?:default=)?(\S+?))?\)""")
18 configpartialre = (r"""ui\.config""")
18
19
19 def main(args):
20 def main(args):
20 for f in args:
21 for f in args:
21 sect = ''
22 sect = ''
22 prevname = ''
23 prevname = ''
23 confsect = ''
24 confsect = ''
25 carryover = ''
24 for l in open(f):
26 for l in open(f):
25
27
26 # check topic-like bits
28 # check topic-like bits
@@ -67,7 +69,8 b' def main(args):'
67 documented[m.group(1)] = 1
69 documented[m.group(1)] = 1
68
70
69 # look for code-like bits
71 # look for code-like bits
70 m = re.search(configre, l)
72 line = carryover + l
73 m = re.search(configre, line, re.MULTILINE)
71 if m:
74 if m:
72 ctype = m.group(1)
75 ctype = m.group(1)
73 if not ctype:
76 if not ctype:
@@ -83,6 +86,13 b' def main(args):'
83 print "conflict on %s: %r != %r" % (name, (ctype, default),
86 print "conflict on %s: %r != %r" % (name, (ctype, default),
84 foundopts[name])
87 foundopts[name])
85 foundopts[name] = (ctype, default)
88 foundopts[name] = (ctype, default)
89 carryover = ''
90 else:
91 m = re.search(configpartialre, line)
92 if m:
93 carryover = line
94 else:
95 carryover = ''
86
96
87 for name in sorted(foundopts):
97 for name in sorted(foundopts):
88 if name not in documented:
98 if name not in documented:
General Comments 0
You need to be logged in to leave comments. Login now