From 132bde170fbc1a2f43f25154397f6f21da65fb5f Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sat, 15 Oct 2011 18:52:25 +0200 Subject: [PATCH] Speed up package extraction. --- python/pakfire/packages/file.py | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/python/pakfire/packages/file.py b/python/pakfire/packages/file.py index a2bd88c04..190843b53 100644 --- a/python/pakfire/packages/file.py +++ b/python/pakfire/packages/file.py @@ -257,27 +257,27 @@ class FilePackage(Package): # Get a list of files in the archive. members = payload_archive.getmembers() - i = 0 - for member in members: - # Update progress. - if pb: - i += 1 - pb.update(i) + name2file = {} + for file in self.filelist: + name = file.name - file = None - for f in self.filelist: - m_name = "/%s" % member.name - if f.is_dir(): - m_name = "%s/" % m_name + if file.is_dir(): + name = name[:-1] - if m_name == f.name: - file = f - break + name2file[name] = file + i = 0 + for member in members: + file = name2file.get("/%s" % member.name, None) if not file: logging.warning(_("File in archive is missing in file metadata: /%s. Skipping.") % member.name) continue + # Update progress. + if pb: + i += 1 + pb.update(i) + target = os.path.join(prefix, member.name) # Check if a configuration file is already present. We don't want to -- 2.39.5