sabayon r947 - in trunk: . lib
- From: sayamindu svn gnome org
- To: svn-commits-list gnome org
- Subject: sabayon r947 - in trunk: . lib
- Date: Thu, 21 Feb 2008 15:41:35 +0000 (GMT)
Author: sayamindu
Date: Thu Feb 21 15:41:35 2008
New Revision: 947
URL: http://svn.gnome.org/viewvc/sabayon?rev=947&view=rev
Log:
lib/storage.py (zip_directory): Fix recursive behaviour; Fixes bgo #476761
Modified:
trunk/ChangeLog
trunk/lib/storage.py
Modified: trunk/lib/storage.py
==============================================================================
--- trunk/lib/storage.py (original)
+++ trunk/lib/storage.py Thu Feb 21 15:41:35 2008
@@ -592,14 +592,32 @@
save_zip.writestr ("metadata", self.metadata.serialize (format = 1))
def zip_directory (save_zip, dir, name):
+ zip_filelist = save_zip.namelist()
+ homedir = util.get_home_dir()
+
for f in os.listdir (dir):
path = os.path.join (dir, f)
if os.path.isdir (path):
- zip_directory (save_zip,
- path,
- os.path.join (name, f))
+ # We need to stop if we are recursing inside a ignored
+ # directory.
+ if util.should_ignore_dir (homedir,
+ DIRECTORIES_TO_IGNORE, os.path.join(homedir, name, f)):
+ dprint ("Not going inside %s as it is an ignored directory.", path)
+ else:
+ zip_directory (save_zip,
+ path,
+ os.path.join (name, f))
elif os.path.isfile (path):
- save_zip.write (path, os.path.join (name, f))
+ # Avoid putting in a duplicate file entry
+ # See bug #476761
+ if os.path.join (name, f) in zip_filelist:
+ dprint ("Not adding %s to zipfile since it is already in the file", os.path.join (name, f))
+ elif util.should_ignore_file (homedir,
+ DIRECTORIES_TO_IGNORE, FILES_TO_IGNORE, os.path.join(homedir, name, f)):
+ dprint ("Not adding %s to zipfile since it is a ignored file", os.path.join (name, f))
+ else:
+ zip_filelist.append(os.path.join(name, f))
+ save_zip.write (path, os.path.join (name, f))
def zip_foreach (path, is_directory, data):
(save_zip, temp_path) = data
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]