[game-data-packager] 01/02: add support for Unar extractor

Alexandre Detiste detiste-guest at moszumanska.debian.org
Mon Jun 15 16:23:10 UTC 2015


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

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

commit bd4f77900507a24243f6c60d4b1a083d7967e042
Author: Alexandre Detiste <alexandre.detiste at gmail.com>
Date:   Mon Jun 15 17:56:52 2015 +0200

    add support for Unar extractor
---
 debian/control                 |  2 ++
 game_data_packager/__init__.py | 13 ++++++++++++-
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/debian/control b/debian/control
index 6b0e945..9612090 100644
--- a/debian/control
+++ b/debian/control
@@ -51,6 +51,8 @@ Suggests:
 	unace-nonfree,
 # for Arx Fatalis
 	unrar,
+# for I have no mouth and I must scream
+        unar,
 # for Doom2 Master Levels launcher
 	python3-gi,
 	gir1.2-gtk-3.0,
diff --git a/game_data_packager/__init__.py b/game_data_packager/__init__.py
index f1d3736..d6ad6ad 100644
--- a/game_data_packager/__init__.py
+++ b/game_data_packager/__init__.py
@@ -651,7 +651,7 @@ class GameData(object):
                 if stripped == '' or stripped.startswith('#'):
                     continue
 
-                size, md5, filename = line.split(None, 3)
+                size, md5, filename = line.split(None, 2)
                 f = self._ensure_file(filename)
                 f.size = int(size)
                 f.md5 = md5
@@ -1707,6 +1707,17 @@ class GameData(object):
                                 [os.path.abspath(found_name)] +
                                 list(to_unpack), cwd=tmpdir)
                     self.consider_file_or_dir(tmpdir)
+                elif fmt == 'unar':
+                    to_unpack = provider.unpack.get('unpack', provider.provides)
+                    logger.debug('Extracting %r from %s', to_unpack, found_name)
+                    tmpdir = os.path.join(self.get_workdir(), 'tmp',
+                            provider_name + '.d')
+                    mkdir_p(tmpdir)
+                    quiet = [] if VERBOSE else ['-q']
+                    subprocess.check_call(['unar', '-D'] +
+                               quiet + [os.path.abspath(found_name)] +
+                               list(to_unpack), cwd=tmpdir)
+                    self.consider_file_or_dir(tmpdir)
                 elif fmt == 'unshield':
                     other_parts = provider.unpack['other_parts']
                     for p in other_parts:

-- 
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