[Treepkg-commits] r142 - trunk/recipes/kde_enterprise_4

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Tue Jan 6 17:01:11 CET 2009


Author: bh
Date: 2009-01-06 17:01:11 +0100 (Tue, 06 Jan 2009)
New Revision: 142

Added:
   trunk/recipes/kde_enterprise_4/base.py
Log:
New module with code common to almost all kdepim enterprise 4 recipes


Added: trunk/recipes/kde_enterprise_4/base.py
===================================================================
--- trunk/recipes/kde_enterprise_4/base.py	2009-01-05 16:57:04 UTC (rev 141)
+++ trunk/recipes/kde_enterprise_4/base.py	2009-01-06 16:01:11 UTC (rev 142)
@@ -0,0 +1,74 @@
+# Copyright (C) 2007, 2008, 2009 by Intevation GmbH
+# Authors:
+# Bernhard Herzog <bh at intevation.de>
+#
+# This program is free software under the GPL (>=v2)
+# Read the file COPYING coming with the software for details.
+
+"""Base classes for all kdepim packagers"""
+
+import os
+import time
+import inspect
+
+import treepkg.packager
+
+
+class BaseSourcePackager(treepkg.packager.SourcePackager):
+
+    def __init__(self, *args, **kw):
+        super(BaseSourcePackager, self).__init__(*args, **kw)
+        self.enterprise_version = (time.strftime("%Y%m%d", time.localtime()) \
+                                   + "." + str(self.revision))
+
+    def determine_package_version(self, directory):
+        enterprise_version = self.enterprise_version
+        return self.track.version_template % locals()
+
+    def do_package(self):
+        pkgbaseversion, pkgbasedir = self.export_sources()
+        self.update_version_numbers(pkgbasedir)
+
+        pkgbasename = self.pkg_basename + "_" + pkgbaseversion
+        origtargz = os.path.join(self.work_dir,
+                                 pkgbasename + ".orig.tar.gz")
+        self.create_tarball(origtargz, self.work_dir,
+                            os.path.basename(pkgbasedir))
+
+        changemsg = ("Update to SVN enterprise4 branch rev. %d"
+                     % (self.revision,))
+        self.copy_debian_directory(pkgbasedir, pkgbaseversion,
+                                   changemsg)
+
+        self.create_source_package(pkgbasedir, origtargz)
+        self.move_source_package(pkgbasename)
+
+
+class BasePackageTrack(treepkg.packager.PackageTrack):
+
+    extra_config_desc = ["version_template"]
+
+    def __init__(self, *args, **kw):
+        self.version_template = kw.pop("version_template")
+        super(BasePackageTrack, self).__init__(*args, **kw)
+
+
+def define_kdepim_packager(basename=None, external_subdirs=None):
+
+    caller_globals = inspect.currentframe().f_back.f_globals
+
+    SourcePackager = caller_globals.get("SourcePackager")
+    if SourcePackager is None:
+        class SourcePackager(BaseSourcePackager):
+            pkg_basename = basename
+
+    class RevisionPackager(treepkg.packager.RevisionPackager):
+        source_packager_cls = SourcePackager
+
+    class PackageTrack(BasePackageTrack):
+        revision_packager_cls = RevisionPackager
+
+        if external_subdirs is not None:
+            svn_external_subdirs = external_subdirs
+
+    caller_globals["PackageTrack"] = PackageTrack


Property changes on: trunk/recipes/kde_enterprise_4/base.py
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + native



More information about the Treepkg-commits mailing list