summaryrefslogtreecommitdiffhomepage
path: root/gbp
diff options
context:
space:
mode:
authorGuido Günther <agx@sigxcpu.org>2017-11-27 19:59:32 +0100
committerGuido Günther <agx@sigxcpu.org>2017-11-27 22:49:52 +0100
commit09e013ffed5c4d64b2c4bc04755c5b8921f554f4 (patch)
tree650e210b02096789ce300c07d994bba0dc715427 /gbp
parenta12c5960232fc10996324d3204bd468cb80ec76b (diff)
DebianSource: provide mapping for control file as well
This makes sure we have the logic to access these files in debian/ in one place. Gbp-Dch: Ignore
Diffstat (limited to 'gbp')
-rw-r--r--gbp/deb/source.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/gbp/deb/source.py b/gbp/deb/source.py
index 643aac2e..a2e1c9a8 100644
--- a/gbp/deb/source.py
+++ b/gbp/deb/source.py
@@ -20,6 +20,7 @@ import os
from gbp.deb import DebianPkgPolicy as Policy
from gbp.deb.format import DebianSourceFormat
from gbp.deb.changelog import ChangeLog
+from gbp.deb.control import Control
class FileVfs(object):
@@ -56,6 +57,7 @@ class DebianSource(object):
package.
"""
self._changelog = None
+ self._control = None
if isinstance(vfs, str):
self._vfs = FileVfs(vfs)
@@ -101,6 +103,19 @@ class DebianSource(object):
return self._changelog
@property
+ def control(self):
+ """
+ Return the L{gbp.deb.Control}
+ """
+ if not self._control:
+ try:
+ with self._vfs.open('debian/control', 'rb') as cf:
+ self._control = Control(cf.read().decode('utf-8'))
+ except IOError as err:
+ raise DebianSourceError('Failed to read control file: %s' % err)
+ return self._control
+
+ @property
def sourcepkg(self):
"""
The source package's name