[yum-commits] 2 commits - plugins/keys reposync.py

James Antill james at osuosl.org
Wed Nov 12 15:38:33 UTC 2008


 plugins/keys/keys.py |    1 +
 reposync.py          |   26 ++++++++++++++++++++++----
 2 files changed, 23 insertions(+), 4 deletions(-)

New commits:
commit c917519bc081c5ac6930b9f58ddd032bde672399
Author: James Antill <james at and.org>
Date:   Wed Nov 12 10:35:25 2008 -0500

    Setup the default repos. so we list the repo. keys

diff --git a/plugins/keys/keys.py b/plugins/keys/keys.py
index e18822b..e964719 100644
--- a/plugins/keys/keys.py
+++ b/plugins/keys/keys.py
@@ -136,6 +136,7 @@ class KeysListCommand:
 
             keys.append(Key(keyid, createts, sum_type, sum_auth, data))
         if gpgme is not None:
+            base.repos.doSetup() # Without this repo.cachedir is empty *sigh*
             for repo in base.repos.listEnabled():
                 gpgdir = '%s/gpgdir' % repo.cachedir
                 if not os.path.exists(gpgdir):
commit a95ed80a54eb49edd9d0e99647da08955f57d678
Author: James Antill <james at and.org>
Date:   Wed Nov 12 10:35:16 2008 -0500

    Add total download percentage like "normal" yum download

diff --git a/reposync.py b/reposync.py
index 421e61f..6ba38cf 100755
--- a/reposync.py
+++ b/reposync.py
@@ -46,6 +46,7 @@ from yum.packageSack import ListPackageSack
 import rpmUtils.arch
 import logging
 from urlgrabber.progress import TextMeter
+import urlgrabber
 
 # for yum 2.4.X compat
 def sortPkgObj(pkg1 ,pkg2):
@@ -231,6 +232,20 @@ def main():
                 if not opts.quiet:
                     my.logger.error("Unable to fetch metadata: %s" % e)
 
+        remote_size = 0
+        local_size  = 0
+        if not opts.urls:
+            for pkg in download_list:
+                remote = pkg.returnSimple('relativepath')
+                local = local_repo_path + '/' + remote
+                sz = int(pkg.returnSimple('packagesize'))
+                if os.path.exists(local) and os.path.getsize(local) == sz:
+                    continue
+                remote_size += sz
+
+        if hasattr(urlgrabber.progress, 'text_meter_total_size'):
+            urlgrabber.progress.text_meter_total_size(remote_size)
+
         download_list.sort(sortPkgObj)
         n = 0
         for pkg in download_list:
@@ -242,9 +257,8 @@ def main():
             if not os.path.exists(localdir):
                 os.makedirs(localdir)
 
-            if (os.path.exists(local) and 
-                os.path.getsize(local) == int(pkg.returnSimple('packagesize'))):
-                
+            sz = int(pkg.returnSimple('packagesize'))
+            if os.path.exists(local) and os.path.getsize(local) == sz:
                 
                 if not opts.quiet:
                     my.logger.error("[%s: %-5d of %-5d ] Skipping existing %s" % (repo.id, n, len(download_list), remote))
@@ -278,8 +292,12 @@ def main():
                 path = repo.getPackage(pkg)
             except yum.Errors.RepoError, e:
                 my.logger.error("Could not retrieve package %s. Error was %s" % (pkg, str(e)))
+                local_size += sz
                 continue
-                
+
+            local_size += sz
+            if hasattr(urlgrabber.progress, 'text_meter_total_size'):
+                urlgrabber.progress.text_meter_total_size(remote_size, local_size)
             if opts.gpgcheck:
                 result, error = my.sigCheckPkg(pkg)
                 if result != 0:


More information about the Yum-commits mailing list