comparison treepkg/packager.py @ 378:41226e427823

Added an option to configure the used builder class from the treepkg.cfg. This should reduce the need for platform specific recipes.
author Andre Heinecke <aheinecke@intevation.de>
date Mon, 21 Jun 2010 13:05:26 +0000
parents ef87d30468b6
children 09d6d11d7043 c1f3be727f9d
comparison
equal deleted inserted replaced
377:1af2aff54563 378:41226e427823
21 import run 21 import run
22 import status 22 import status
23 import debian 23 import debian
24 from cmdexpand import cmdexpand 24 from cmdexpand import cmdexpand
25 from builder import PBuilder 25 from builder import PBuilder
26 from sbuilder import SbdmockBuilder
26 27
27 def _fromparent(attr): 28 def _fromparent(attr):
28 """Creates a property that delegates its value to self.parent.<attr>""" 29 """Creates a property that delegates its value to self.parent.<attr>"""
29 def get(self): 30 def get(self):
30 return getattr(self.parent, attr) 31 return getattr(self.parent, attr)
389 390
390 class PackageTrack(object): 391 class PackageTrack(object):
391 392
392 revision_packager_cls = RevisionPackager 393 revision_packager_cls = RevisionPackager
393 394
394 builder_cls = PBuilder
395
396 svn_external_subdirs = [] 395 svn_external_subdirs = []
397 396
398 extra_config_desc = [] 397 extra_config_desc = []
399 398
400 def __init__(self, name, base_dir, root_cmd, builderconfig, deb_email, 399 def __init__(self, name, base_dir, root_cmd, builderconfig, deb_email,
401 deb_fullname, svn_url="", packager_class="treepkg.packager", 400 deb_fullname, svn_url="", packager_class="treepkg.packager",
402 version_template="%(revision)s", 401 version_template="%(revision)s", builder_cls="PBuilder",
403 pkg_revision_template="treepkg%(pkg_revision)s", 402 pkg_revision_template="treepkg%(pkg_revision)s",
404 handle_dependencies=False, signing_key_id="", do_build=True, 403 handle_dependencies=False, signing_key_id="", do_build=True,
405 rules_svn_url=None, deb_build_options="", pkg_basename="", 404 rules_svn_url=None, deb_build_options="", pkg_basename="",
406 changelog_msg_template="Update to r%(revision)s", 405 changelog_msg_template="Update to r%(revision)s",
407 svn_subset=(), svn_externals=(), git_branch="", git_url=""): 406 svn_subset=(), svn_externals=(), git_branch="", git_url=""):
408 self.name = name 407 self.name = name
408
409 # Convert the builder_cls option to a class
410 if builder_cls.upper() == "SBDMOCKBUILDER" or \
411 builder_cls.upper() == "SBDMOCK":
412 builder_class = SbdmockBuilder
413 elif builder_cls.upper() == "PBUILDER":
414 builder_class = PBuilder
415 else:
416 # If the builder option is explicitly set with an unknown builder
417 # a warning is printed.
418 logging.warning("Track: %s Builder option %s could not be parsed \
419 defaulting to pbuilder" % (name, builder_cls))
420 builder_class = PBuilder
409 if not pkg_basename: 421 if not pkg_basename:
410 pkg_basename = name 422 pkg_basename = name
411 self.pkg_basename = pkg_basename 423 self.pkg_basename = pkg_basename
412 self.changelog_msg_template = changelog_msg_template 424 self.changelog_msg_template = changelog_msg_template
413 self.base_dir = base_dir 425 self.base_dir = base_dir
414 self.builder = self.builder_cls(builderconfig, root_cmd, 426 self.builder = builder_class(builderconfig, root_cmd,
415 release_signing_keyid=signing_key_id) 427 release_signing_keyid=signing_key_id)
416 self.deb_email = deb_email 428 self.deb_email = deb_email
417 self.deb_fullname = deb_fullname 429 self.deb_fullname = deb_fullname
418 self.deb_build_options = deb_build_options 430 self.deb_build_options = deb_build_options
419 self.version_template = version_template 431 self.version_template = version_template
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)