public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/R_overlay:master commit in: roverlay/db/, roverlay/
@ 2013-08-30 14:49 André Erdmann
  0 siblings, 0 replies; only message in thread
From: André Erdmann @ 2013-08-30 14:49 UTC (permalink / raw
  To: gentoo-commits

commit:     ad22bc5fcd4df4805a8cc4fd7a975e9c021fae5d
Author:     André Erdmann <dywi <AT> mailerd <DOT> de>
AuthorDate: Fri Aug 30 14:43:17 2013 +0000
Commit:     André Erdmann <dywi <AT> mailerd <DOT> de>
CommitDate: Fri Aug 30 14:43:17 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=ad22bc5f

packageinfo, get_distmap_value(): include distfile

+ support no_digest keyword arg which sets digest=None
+ get_distmap_value()'s code moved to get_distmap_item()

---
 roverlay/db/distmap.py  |  4 +---
 roverlay/packageinfo.py | 34 ++++++++++++++++++++++------------
 2 files changed, 23 insertions(+), 15 deletions(-)

diff --git a/roverlay/db/distmap.py b/roverlay/db/distmap.py
index cddcb5b..0ae294a 100644
--- a/roverlay/db/distmap.py
+++ b/roverlay/db/distmap.py
@@ -184,9 +184,7 @@ class _DistMapBase ( object ):
       if isinstance ( value, DistMapInfo ):
          self.add_entry ( key, value )
       elif hasattr ( value, 'get_distmap_value' ):
-         self.add_entry (
-            key, DistMapInfo ( key, *value.get_distmap_value() )
-         )
+         self.add_entry ( key, DistMapInfo.from_package_info ( key ) )
       else:
          self.add_entry ( key, DistMapInfo ( key, *value ) )
    # --- end of __setitem__ (...) ---

diff --git a/roverlay/packageinfo.py b/roverlay/packageinfo.py
index 193fe18..43fe4f3 100644
--- a/roverlay/packageinfo.py
+++ b/roverlay/packageinfo.py
@@ -532,9 +532,26 @@ class PackageInfo ( roverlay.util.objects.Referenceable ):
       return self._info ['desc_data']
    # --- end of get_desc_data (...) ---
 
-   def get_distmap_item ( self ):
+   def get_distmap_item ( self, allow_digest_create=False, no_digest=False ):
       """Returns a 2-tuple ( key, info ) for the distmap."""
-      return ( self.get_distmap_key(), self.get_distmap_value() )
+      if no_digest:
+         digest = None
+      elif allow_digest_create:
+         digest = self.make_distmap_hash()
+      else:
+         digest = self.hashdict [self.DISTMAP_DIGEST_TYPE]
+
+      distfile = self.get ( "package_src_destpath" )
+      repo     = self.get ( "origin" )
+
+      return (
+         distfile, (
+            distfile,
+            repo.name,
+            os.path.relpath ( self.get ( "package_file" ), repo.distdir ),
+            digest
+         )
+      )
    # --- end of get_distmap_item (...) ---
 
    def get_distmap_key ( self ):
@@ -542,21 +559,14 @@ class PackageInfo ( roverlay.util.objects.Referenceable ):
       return self.get ( "package_src_destpath" )
    # --- end of get_distmap_key (...) ---
 
-   def get_distmap_value ( self, allow_digest_create=False ):
+   def get_distmap_value ( self, allow_digest_create=False, no_digest=False ):
       """Returns a data tuple for creating DistMapInfo instances.
 
       arguments:
       * allow_digest_create --
+      * no_digest           -- use None as digest
       """
-      repo = self.get ( "origin" )
-      return (
-         repo.name,
-         os.path.relpath ( self.get ( "package_file" ), repo.distdir ),
-         (
-            self.make_distmap_hash() if allow_digest_create
-            else self.hashdict [self.DISTMAP_DIGEST_TYPE]
-         )
-      )
+      return self.get_distmap_item ( allow_digest_create, no_digest ) [1]
    # --- end of get_distmap_value (...) ---
 
    def make_distmap_hash ( self ):


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2013-08-30 14:49 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-30 14:49 [gentoo-commits] proj/R_overlay:master commit in: roverlay/db/, roverlay/ André Erdmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox