[game-data-packager] 01/02: add support for UnAce (non-free)
Alexandre Detiste
detiste-guest at moszumanska.debian.org
Sun Apr 12 10:01:43 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 f89757128c3a4591eef2c5a7d62d8ce66f757609
Author: Alexandre Detiste <alexandre.detiste at gmail.com>
Date: Sun Apr 12 11:54:18 2015 +0200
add support for UnAce (non-free)
adding support for unace (free), if ever needed,
should be as simple as:
- elif fmt == 'unace-nonfree':
+ elif fmt in ('unace', 'unace-nonfree'):
---
debian/control | 4 +++-
game_data_packager/__init__.py | 33 +++++++++++++++++++++++++--------
2 files changed, 28 insertions(+), 9 deletions(-)
diff --git a/debian/control b/debian/control
index 87df2c3..08e93f0 100644
--- a/debian/control
+++ b/debian/control
@@ -41,12 +41,14 @@ Suggests:
innoextract,
# for Doom3
p7zip-full,
-# for Jedi Academy (demo)
+# for Jedi Academy (demo), Arx Fatalis
unshield,
# for Descent 1
arj,
# for Arx Fatalis
cabextract,
+# for Arx Fatalis
+ unace-nonfree,
Architecture: all
Multi-Arch: foreign
Description: Installer for game data files
diff --git a/game_data_packager/__init__.py b/game_data_packager/__init__.py
index 8ae1edc..fd02872 100644
--- a/game_data_packager/__init__.py
+++ b/game_data_packager/__init__.py
@@ -1493,6 +1493,16 @@ class GameData(object):
subprocess.check_call(['cabextract', '-q', '-L',
os.path.abspath(found_name)], cwd=tmpdir)
self.consider_file_or_dir(tmpdir)
+ elif fmt == 'unace-nonfree':
+ 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)
+ subprocess.check_call(['unace', 'x',
+ os.path.abspath(found_name)], cwd=tmpdir)
+ self.consider_file_or_dir(tmpdir)
elif fmt == 'innoextract':
to_unpack = provider.unpack.get('unpack', provider.provides)
logger.debug('Extracting %r from %s',
@@ -2512,15 +2522,22 @@ class GameData(object):
fmt = wanted.unpack['format']
- if fmt not in ('cat', 'dos2unix', 'tar.gz', 'tar.bz2', 'tar.xz', 'zip'):
- if which(fmt) is None:
- logger.warning('cannot unpack "%s": tool "%s" is not ' +
- 'installed', wanted.name, fmt)
- self.missing_tools.add(fmt)
- self.unpack_failed.add(wanted.name)
- return False
+ # builtins
+ if fmt in ('cat', 'dos2unix', 'tar.gz', 'tar.bz2', 'tar.xz', 'zip'):
+ return True
- return True
+ if which(fmt) is not None:
+ return True
+
+ # unace-nonfree package diverts /usr/bin/unace from unace package
+ if fmt == 'unace-nonfree' and is_installed('unace-nonfree'):
+ return True
+
+ logger.warning('cannot unpack "%s": tool "%s" is not ' +
+ 'installed', wanted.name, fmt)
+ self.missing_tools.add(fmt)
+ self.unpack_failed.add(wanted.name)
+ return False
def log_missing_tools(self):
if not self.missing_tools:
--
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