[library-web] clean old extraction directories (GNOME bug 655072)



commit 7227d2823975cba7cd7102d5b1b0ff7bfd4e80e9
Author: FrÃdÃric PÃters <fpeters 0d be>
Date:   Sun Aug 12 14:29:52 2012 +0200

    clean old extraction directories (GNOME bug 655072)

 src/lgo.py |   21 ++++++++++++++++++---
 1 files changed, 18 insertions(+), 3 deletions(-)
---
diff --git a/src/lgo.py b/src/lgo.py
index 76b4ce2..2fe9d28 100755
--- a/src/lgo.py
+++ b/src/lgo.py
@@ -455,14 +455,29 @@ class Lgo(App):
 
         mtime = os.stat(filename)[stat.ST_MTIME]
 
+        tarball_name = os.path.splitext(os.path.splitext(os.path.basename(filename))[0])[0]
+        tarname_without_minor = re.match(r'(.*)\.\d+', tarball_name).groups()[0]
+
+        # Step 0: remove old occurences of module extracts
+        for extract_filename in os.listdir(os.path.join(app.config.private_dir, 'extracts')):
+            if extract_filename.endswith('.extract-stamp'):
+                continue
+            if extract_filename == tarball_name:
+                continue
+            if not extract_filename.startswith(tarname_without_minor):
+                continue
+            extract_dir = os.path.join(app.config.private_dir, 'extracts', extract_filename)
+            shutil.rmtree(extract_dir)
+            if os.path.exists(extract_dir + '.extract-stamp'):
+                os.unlink(extract_dir + '.extract-stamp')
+
         if self.config.fast_mode:
-            ext_dirname = os.path.join(app.config.private_dir, 'extracts',
-                    os.path.splitext(os.path.splitext(os.path.basename(filename))[0])[0])
+            ext_dirname = os.path.join(app.config.private_dir, 'extracts', tarball_name)
             stamp_file = ext_dirname + '.extract-stamp'
         else:
             stamp_file = None
 
-        base_tarball_name = os.path.basename(filename).rsplit('-', 1)[0]
+        base_tarball_name = os.path.basename(tarball_name).rsplit('-', 1)[0]
         if nightly:
             stamp_file = None
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]