aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndré Erdmann <dywi@mailerd.de>2013-06-19 20:51:35 +0200
committerAndré Erdmann <dywi@mailerd.de>2013-06-19 20:51:35 +0200
commitdaf73b9acc9191382332ef2e4582e906db9ad435 (patch)
treef4d7829500424854b3b379257143dfd95a0dd7de /roverlay/packageinfo.py
parentroverlay/ebuild: useflagmap (diff)
downloadR_overlay-daf73b9acc9191382332ef2e4582e906db9ad435.tar.gz
R_overlay-daf73b9acc9191382332ef2e4582e906db9ad435.tar.bz2
R_overlay-daf73b9acc9191382332ef2e4582e906db9ad435.zip
packageinfo: create distmap data, make hashes
Diffstat (limited to 'roverlay/packageinfo.py')
-rw-r--r--roverlay/packageinfo.py43
1 files changed, 39 insertions, 4 deletions
diff --git a/roverlay/packageinfo.py b/roverlay/packageinfo.py
index 90b4250..e8004d0 100644
--- a/roverlay/packageinfo.py
+++ b/roverlay/packageinfo.py
@@ -18,6 +18,8 @@ import os.path
import logging
import threading
+import roverlay.digest
+
from roverlay import config, strutil
from roverlay.rpackage import descriptionreader
@@ -123,7 +125,7 @@ class PackageInfo ( object ):
self._info = dict()
self.readonly = False
self._update_lock = threading.RLock()
- self.overlay_package_ref = None
+ #self.overlay_package_ref = None
self.logger = LOGGER
#self._evars = dict()
#self._lazy_actions = list()
@@ -373,9 +375,7 @@ class PackageInfo ( object ):
elif key_low == 'package_src_destpath':
# src file path relative to distroot (mirror root dir)
destpath = self._info.get ('src_uri_dest', None )
- return (
- destpath or os.path.basename ( self._info ['package_filename'] )
- )
+ return ( destpath or self._info ['package_filename'] )
# end if <key matches ...>
@@ -450,6 +450,41 @@ class PackageInfo ( object ):
return self._info ['desc_data']
# --- end of get_desc_data (...) ---
+ def get_distmap_item ( self ):
+ return ( self.get_distmap_key(), self.get_distmap_value() )
+ # --- end of get_distmap_item (...) ---
+
+ def get_distmap_key ( self ):
+ return self.get ( "package_src_destpath" )
+ # --- end of get_distmap_key (...) ---
+
+ def get_distmap_value ( self ):
+ assert 'sha256' in self.hashdict
+
+ repo = self.get ( "origin" )
+ return (
+ repo.name,
+ os.path.relpath ( self.get ( "package_file" ), repo.distdir ),
+ self.hashdict ['sha256']
+ )
+ # --- end of get_distmap_value (...) ---
+
+ def make_hashes ( self, hashlist ):
+ pkgfile = self.get ( "package_file" )
+
+ if hasattr ( self, 'hashdict' ) and self.hashdict:
+ new_hashes = (
+ frozenset ( hashlist ) - frozenset ( self.hashdict.keys() )
+ )
+
+ if new_hashes:
+ self.hashdict.update (
+ roverlay.digest.multihash_file ( pkgfile, new_hashes )
+ )
+ else:
+ self.hashdict = roverlay.digest.multihash_file ( pkgfile, hashlist )
+ # --- end of make_hashes (...) ---
+
def __getitem__ ( self, key ):
"""Returns an item."""
return self.get ( key, do_fallback=False )