aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndré Erdmann <dywi@mailerd.de>2013-08-30 16:43:17 +0200
committerAndré Erdmann <dywi@mailerd.de>2013-08-30 16:43:17 +0200
commitad22bc5fcd4df4805a8cc4fd7a975e9c021fae5d (patch)
tree98e5124b8c767fa198107f1bf425e58763336848
parentdistmap: get_distfile_slot() (diff)
downloadR_overlay-ad22bc5fcd4df4805a8cc4fd7a975e9c021fae5d.tar.gz
R_overlay-ad22bc5fcd4df4805a8cc4fd7a975e9c021fae5d.tar.bz2
R_overlay-ad22bc5fcd4df4805a8cc4fd7a975e9c021fae5d.zip
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()
-rw-r--r--roverlay/db/distmap.py4
-rw-r--r--roverlay/packageinfo.py34
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 ):