[Rpm-metadata] createrepo/__init__.py genpkgmetadata.py

skvidal at osuosl.org skvidal at osuosl.org
Thu Jul 28 21:04:29 UTC 2011


 createrepo/__init__.py |   25 ++++++++++++++++++-------
 genpkgmetadata.py      |    1 +
 2 files changed, 19 insertions(+), 7 deletions(-)

New commits:
commit b73f374d6ab3c9dd681d9d5dcd8ab2262d73c166
Author: Seth Vidal <skvidal at fedoraproject.org>
Date:   Thu Jul 28 17:03:45 2011 -0400

    add two private methods to help clean up doFinalMove() and makes the code a little
    nicer for how it is called from the cli.
    
    slightly nicer fix for: https://bugzilla.redhat.com/show_bug.cgi?id=581628

diff --git a/createrepo/__init__.py b/createrepo/__init__.py
index 8cce31a..30f7422 100644
--- a/createrepo/__init__.py
+++ b/createrepo/__init__.py
@@ -1151,14 +1151,11 @@ class MetaDataGenerator:
                     msg += _('Error was %s') % e
                     raise MDError, msg
 
-        try:
-            os.rmdir(output_old_dir)
-        except OSError, e:
-            self.errorlog(_('Could not remove old metadata dir: %s')
-                          % self.conf.olddir)
-            self.errorlog(_('Error was %s') % e)
-            self.errorlog(_('Please clean up this directory manually.'))
+        self._cleanup_tmp_repodata_dir()
+        self._write_out_read_pkgs_list()
+
 
+    def _write_out_read_pkgs_list(self):
         # write out the read_pkgs_list file with self.read_pkgs
         if self.conf.read_pkgs_list:
             try:
@@ -1171,6 +1168,20 @@ class MetaDataGenerator:
                               % self.conf.read_pkgs_list)
                 self.errorlog(_('Error was %s') % e)
 
+    def _cleanup_tmp_repodata_dir(self):
+        output_old_dir = os.path.join(self.conf.outputdir, self.conf.olddir)
+        output_temp_dir = os.path.join(self.conf.outputdir, self.conf.tempdir)
+        for dirbase in (self.conf.olddir, self.conf.tempdir):
+            dirpath = os.path.join(self.conf.outputdir, dirbase)
+            if os.path.exists(dirpath):
+                try:
+                    os.rmdir(dirpath)
+                except OSError, e:
+                    self.errorlog(_('Could not remove  temp metadata dir: %s')
+                                  % dirbase)
+                    self.errorlog(_('Error was %s') % e)
+                    self.errorlog(_('Please clean up this directory manually.'))
+        
     def setup_sqlite_dbs(self, initdb=True):
         """sets up the sqlite dbs w/table schemas and db_infos"""
         destdir = os.path.join(self.conf.outputdir, self.conf.tempdir)
diff --git a/genpkgmetadata.py b/genpkgmetadata.py
index 6c9217a..512420b 100755
--- a/genpkgmetadata.py
+++ b/genpkgmetadata.py
@@ -242,6 +242,7 @@ def main(args):
             if mdgen.checkTimeStamps():
                 if mdgen.conf.verbose:
                     print _('repo is up to date')
+                mdgen._cleanup_tmp_repodata_dir()
                 sys.exit(0)
 
         if conf.profile:


More information about the Rpm-metadata mailing list