[game-data-packager] 03/05: Strip "?variant" from provided files when unpacking most archives

Simon McVittie smcv at debian.org
Wed Jun 29 08:27:25 UTC 2016


This is an automated email from the git hooks/post-receive script.

smcv pushed a commit to branch master
in repository game-data-packager.

commit b58065bc83a06c507c86c7b7f0da5c3de55a5afc
Author: Simon McVittie <smcv at debian.org>
Date:   Wed Jun 29 08:41:26 2016 +0100

    Strip "?variant" from provided files when unpacking most archives
---
 game_data_packager/build.py | 28 ++++++++--------------------
 1 file changed, 8 insertions(+), 20 deletions(-)

diff --git a/game_data_packager/build.py b/game_data_packager/build.py
index 4106f93..51149d2 100644
--- a/game_data_packager/build.py
+++ b/game_data_packager/build.py
@@ -860,6 +860,14 @@ class PackagingTask(object):
                             except UnicodeError:
                                 print(id_diz.encode('ascii', 'replace').decode('ascii'))
 
+                to_unpack = provider.unpack.get('unpack')
+
+                if to_unpack is None:
+                    to_unpack = []
+
+                    for f in provider.provides_files:
+                        to_unpack.append(f.name.split('?')[0])
+
                 if fmt == 'dos2unix':
                     tmp = os.path.join(self.get_workdir(),
                             'tmp', wanted.name)
@@ -891,8 +899,6 @@ class PackagingTask(object):
                     with ZipUnpacker(found_name) as unpacker:
                         self.consider_stream(found_name, unpacker, provider)
                 elif fmt == 'lha':
-                    to_unpack = provider.unpack.get('unpack',
-                            [f.name for f in provider.provides_files])
                     logger.debug('Extracting %r from %s',
                             to_unpack, found_name)
                     tmpdir = os.path.join(self.get_workdir(), 'tmp',
@@ -904,8 +910,6 @@ class PackagingTask(object):
                             cwd=tmpdir)
                     self.consider_file_or_dir(tmpdir, provider=provider)
                 elif fmt == 'id-shr-extract':
-                    to_unpack = provider.unpack.get('unpack',
-                            [f.name for f in provider.provides_files])
                     logger.debug('Extracting %r from %s',
                             to_unpack, found_name)
                     tmpdir = os.path.join(self.get_workdir(), 'tmp',
@@ -918,8 +922,6 @@ class PackagingTask(object):
                     recursive_utime(tmpdir, os.stat(found_name).st_mtime)
                     self.consider_file_or_dir(tmpdir, provider=provider)
                 elif fmt == 'cabextract':
-                    to_unpack = provider.unpack.get('unpack',
-                            [f.name for f in provider.provides_files])
                     logger.debug('Extracting %r from %s',
                             to_unpack, found_name)
                     tmpdir = os.path.join(self.get_workdir(), 'tmp',
@@ -930,8 +932,6 @@ class PackagingTask(object):
                             os.path.abspath(found_name)], cwd=tmpdir)
                     self.consider_file_or_dir(tmpdir, provider=provider)
                 elif fmt == 'unace-nonfree':
-                    to_unpack = provider.unpack.get('unpack',
-                            [f.name for f in provider.provides_files])
                     logger.debug('Extracting %r from %s',
                             to_unpack, found_name)
                     tmpdir = os.path.join(self.get_workdir(), 'tmp',
@@ -942,8 +942,6 @@ class PackagingTask(object):
                              list(to_unpack), cwd=tmpdir)
                     self.consider_file_or_dir(tmpdir, provider=provider)
                 elif fmt == 'unrar-nonfree':
-                    to_unpack = provider.unpack.get('unpack',
-                            [f.name for f in provider.provides_files])
                     logger.debug('Extracting %r from %s',
                             to_unpack, found_name)
                     tmpdir = os.path.join(self.get_workdir(), 'tmp',
@@ -996,8 +994,6 @@ class PackagingTask(object):
                     check_call(cmdline)
                     self.consider_file_or_dir(tmpdir, provider=provider)
                 elif fmt == 'unzip' and which('unzip'):
-                    to_unpack = provider.unpack.get('unpack',
-                            [f.name for f in provider.provides_files])
                     logger.debug('Extracting %r from %s',
                             to_unpack, found_name)
                     tmpdir = os.path.join(self.get_workdir(), 'tmp',
@@ -1011,8 +1007,6 @@ class PackagingTask(object):
                     # -C use case-insensitive matching
                     self.consider_file_or_dir(tmpdir, provider=provider)
                 elif fmt in ('7z', 'unzip'):
-                    to_unpack = provider.unpack.get('unpack',
-                            [f.name for f in provider.provides_files])
                     logger.debug('Extracting %r from %s',
                             to_unpack, found_name)
                     tmpdir = os.path.join(self.get_workdir(), 'tmp',
@@ -1026,8 +1020,6 @@ class PackagingTask(object):
                                 list(to_unpack), cwd=tmpdir)
                     self.consider_file_or_dir(tmpdir, provider=provider)
                 elif fmt in ('unar', 'unzip'):
-                    to_unpack = provider.unpack.get('unpack',
-                            [f.name for f in provider.provides_files])
                     logger.debug('Extracting %r from %s', to_unpack, found_name)
                     tmpdir = os.path.join(self.get_workdir(), 'tmp',
                             provider_name + '.d')
@@ -1038,8 +1030,6 @@ class PackagingTask(object):
                                list(to_unpack), cwd=tmpdir)
                     self.consider_file_or_dir(tmpdir, provider=provider)
                 elif fmt == 'unshield':
-                    to_unpack = provider.unpack.get('unpack',
-                            [f.name for f in provider.provides_files])
                     logger.debug('Extracting %r from %s', to_unpack, found_name)
                     tmpdir = os.path.join(self.get_workdir(), 'tmp',
                                           provider_name + '.d')
@@ -1061,8 +1051,6 @@ class PackagingTask(object):
                     recursive_utime(tmpdir, os.stat(found_name).st_mtime)
                     self.consider_file_or_dir(tmpdir, provider=provider)
                 elif fmt == 'arj':
-                    to_unpack = provider.unpack.get('unpack',
-                            [f.name for f in provider.provides_files])
                     logger.debug('Extracting %r from %s',
                                  to_unpack, found_name)
                     tmpdir = os.path.join(self.get_workdir(), 'tmp',

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/game-data-packager.git



More information about the Pkg-games-commits mailing list