@@ -212,6 +212,18 @@ def is_toml_comment_or_empty(line_data):
212212
213213def replace_config_values (config_data , replace_file ):
214214 """ Replace values in config_data with values for fields in replace_file """
215+
216+ # new line with replacement value if needed or original line
217+ def original_or_replaced_line (replacements , header , name , line ):
218+ replacement_value = [r_value for r_header , r_name , r_value in replacements
219+ if header == r_header and name == r_name ]
220+ if len (replacement_value ) == 0 :
221+ return line
222+ else :
223+ new_value = replacement_value [0 ]
224+ print (f"Replacing { last_header } :{ name } = { value } with { new_value } " )
225+ return f"{ name } = { new_value } "
226+
215227 replace_file_path = Path (replace_file )
216228 if not replace_file_path .exists ():
217229 raise ValueError (f"Cannot replace values in config, { replace_file } does not exist." )
@@ -231,24 +243,26 @@ def replace_config_values(config_data, replace_file):
231243 last_header = None
232244 for line in config_data .splitlines ():
233245 if is_toml_comment_or_empty (line ):
234- new_output .append (line )
246+ # See if this is a commented out value such as trusted_hash
247+ try :
248+ name , value = toml_name_value (line [1 :])
249+ line = original_or_replaced_line (replacements , last_header , name , line )
250+ new_output .append (line )
251+ except ValueError :
252+ # parsing failed so comment isn't a name=value pair.
253+ new_output .append (line )
235254 continue
236255 header = toml_header (line )
237256 if header is not None :
238257 last_header = header
239258 new_output .append (line )
240259 continue
241260 name , value = toml_name_value (line )
242- replacement_value = [r_value for r_header , r_name , r_value in replacements
243- if last_header == r_header and name == r_name ]
244- if replacement_value :
245- new_value = replacement_value [0 ]
246- print (f"Replacing { last_header } :{ name } = { value } with { new_value } " )
247- new_output .append (f"{ name } = { new_value } " )
248- else :
249- new_output .append (line )
250- # Make trailing new line
251- new_output .append ("" )
261+ line = original_or_replaced_line (replacements , last_header , name , value )
262+ new_output .append (line )
263+
264+ # Make trailing new line
265+ new_output .append ("" )
252266 return "\n " .join (new_output )
253267
254268def walk_path (path , include_dir = True ):
0 commit comments