commit 5a6d09a7e28158d52d41f2efe56a6f4195a2d1d7
Author: Stanislav Ochotnicky <sochotnicky(a)redhat.com>
Date: Tue Mar 12 10:43:03 2013 +0100
[depgen] Wrap only non XML fragments
XMvn style fragments are proper XML files with <?xml.. headers so wrapping them
produces errors
depgenerators/maven.prov | 23 ++++++++++++++++-------
depgenerators/maven.req | 17 +++++++++++------
2 files changed, 27 insertions(+), 13 deletions(-)
---
diff --git a/depgenerators/maven.prov b/depgenerators/maven.prov
index 1c981d0..5fc80e2 100755
--- a/depgenerators/maven.prov
+++ b/depgenerators/maven.prov
@@ -43,14 +43,23 @@ class TagBuilder:
for path in paths:
self.print_mvn_provides(path)
+ def get_fragment_doc(self, fragment_path):
+ with open(fragment_path) as f:
+ content = f.read()
+
+ start, end = "", ""
+ if not fragment_path[-4:] == '.xml':
+ start = "<fragments>"
+ end = "</fragments>"
+
+ fragments = "{start}{content}{end}".format(start=start,
+ content=content,
+ end=end)
+ return fromstring(fragments)
+
+
def print_mvn_provides(self, path):
- buf = StringIO()
- buf.write('<fragments>\n')
- with open(path) as f:
- buf.write(f.read())
- buf.write('</fragments>')
- fragments = buf.getvalue()
- doc = fromstring(fragments)
+ doc = self.get_fragment_doc(path)
versioned_provides = False
if doc.find('.//skipProvides') is not None:
# this is compat package, generate versioned provides
diff --git a/depgenerators/maven.req b/depgenerators/maven.req
index b50cd48..5be9701 100755
--- a/depgenerators/maven.req
+++ b/depgenerators/maven.req
@@ -65,13 +65,18 @@ class TagBuilder:
return provided
def get_fragment_doc(self, fragment_path):
- buf = StringIO()
- buf.write('<fragments>\n')
with open(fragment_path) as f:
- buf.write(f.read())
- buf.write('</fragments>')
- fragments = buf.getvalue()
- return fromstring(fragments)
+ content = f.read()
+
+ start, end = "", ""
+ if not fragment_path[-4:] == '.xml':
+ start = "<fragments>"
+ end = "</fragments>"
+
+ fragments = "{start}{content}{end}".format(start=start,
+ content=content,
+ end=end)
+ return fromstring(fragments)
def print_mvn_requires(self, path, provided):
doc = self.get_fragment_doc(path)