UBUNTU: [Packaging] annotations: Preserve single-line annotation rules

Currently, rules with notes are written out as separate lines, i. e.,
one line for the policy and one line for the note, followed by an
empty line. The parser now supports single line rules so preserve that
style when writting out the rules.

Signed-off-by: Juerg Haefliger <juerg.haefliger@canonical.com>
Signed-off-by: Andrea Righi <andrea.righi@canonical.com>
This commit is contained in:
Juerg Haefliger
2023-02-06 08:14:48 +01:00
committed by Paolo Pisati
parent 0c9146f650
commit 7329f4be77
+9 -3
View File
@@ -82,6 +82,7 @@ class Annotation(Config):
m = re.match(r'.* note<(.*?)>', line)
if m:
entry['oneline'] = match
match = True
entry['note'] = "'" + m.group(1).replace("'", '') + "'"
@@ -284,11 +285,16 @@ class Annotation(Config):
if 'policy' in new_val:
val = dict(sorted(new_val['policy'].items()))
line = f"{conf : <47} policy<{val}>"
tmp.write(line + "\n")
if 'note' in new_val:
val = new_val['note']
line = f"{conf : <47} note<{val}>"
tmp.write(line + "\n\n")
if new_val.get('oneline', False):
# Single line
line += f' note<{val}>'
else:
# Separate policy and note lines,
# followed by an empty line
line += f'\n{conf : <47} note<{val}>\n'
tmp.write(line + "\n")
# Replace annotations with the updated version
tmp.flush()