UBUNTU: [Packaging] annotations: prevent duplicate include lines
Includes are always parsed recursively, but when we save them (e.g., when the annotations file is updated) we should always save only the top-level includes, without repeating the recursive ones. Signed-off-by: Andrea Righi <andrea.righi@canonical.com>
This commit is contained in:
committed by
Paolo Pisati
parent
18f0cda30d
commit
281ad73637
+4
-3
@@ -61,7 +61,7 @@ class Annotation(Config):
|
||||
"""
|
||||
Parse body of annotations file
|
||||
"""
|
||||
def _parse_body(self, data: str):
|
||||
def _parse_body(self, data: str, parent=True):
|
||||
for line in data.splitlines():
|
||||
# Replace tabs with spaces, squeeze multiple into singles and
|
||||
# remove leading and trailing spaces
|
||||
@@ -85,10 +85,11 @@ class Annotation(Config):
|
||||
# Handle includes (recursively)
|
||||
m = re.match(r'^include\s+"?([^"]*)"?', line)
|
||||
if m:
|
||||
self.include.append(m.group(1))
|
||||
if parent:
|
||||
self.include.append(m.group(1))
|
||||
include_fname = dirname(abspath(self.fname)) + '/' + m.group(1)
|
||||
include_data = self._load(include_fname)
|
||||
self._parse_body(include_data)
|
||||
self._parse_body(include_data, parent=False)
|
||||
continue
|
||||
|
||||
# Handle policy and note lines
|
||||
|
||||
Reference in New Issue
Block a user