Skip to content

Commit 960ac2e

Browse files
committed
[107049] Recognise top level keys in config.toml.example
1 parent 3eb5c45 commit 960ac2e

File tree

1 file changed

+22
-5
lines changed

1 file changed

+22
-5
lines changed

src/bootstrap/configure.py

+22-5
Original file line numberDiff line numberDiff line change
@@ -379,8 +379,14 @@ def set(key, value):
379379
sections[None] = []
380380
section_order = [None]
381381
targets = {}
382+
top_level_keys = []
382383

383384
for line in open(rust_dir + '/config.toml.example').read().split("\n"):
385+
if cur_section == None:
386+
if line.count('=') == 1:
387+
top_level_key = line.split('=')[0]
388+
top_level_key = top_level_key.strip(' #')
389+
top_level_keys.append(top_level_key)
384390
if line.startswith('['):
385391
cur_section = line[1:-1]
386392
if cur_section.startswith('target'):
@@ -459,12 +465,23 @@ def configure_section(lines, config):
459465
raise RuntimeError("failed to find config line for {}".format(key))
460466

461467

462-
for section_key in config:
463-
section_config = config[section_key]
464-
if section_key not in sections:
465-
raise RuntimeError("config key {} not in sections".format(section_key))
468+
def configure_top_level_key(lines, top_level_key, value):
469+
for i, line in enumerate(lines):
470+
if line.startswith('#' + top_level_key + ' = ') or line.startswith(top_level_key + ' = '):
471+
lines[i] = "{} = {}".format(top_level_key, value)
472+
return
473+
474+
raise RuntimeError("failed to find config line for {}".format(top_level_key))
466475

467-
if section_key == 'target':
476+
477+
for section_key, section_config in config.items():
478+
if section_key not in sections and section_key not in top_level_keys:
479+
raise RuntimeError("config key {} not in sections or top_level_keys".format(section_key))
480+
481+
if section_key in top_level_keys:
482+
configure_top_level_key(sections[None], section_key, section_config)
483+
484+
elif section_key == 'target':
468485
for target in section_config:
469486
configure_section(targets[target], section_config[target])
470487
else:

0 commit comments

Comments
 (0)