[game-data-packager] 01/01: implement support for upcoming innoxectract release

Alexandre Detiste detiste-guest at moszumanska.debian.org
Thu May 14 22:08:13 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 ae8d53d68cece528ba785283d7be7cb96d1be911
Author: Alexandre Detiste <alexandre.detiste at gmail.com>
Date:   Fri May 15 00:03:22 2015 +0200

    implement support for upcoming innoxectract release
    
    * use new --include argument for bundles
    * remove now useless 'distinctive_name: false'
    * fallback to old logic if user is still using v1.4
---
 data/kingsquest1.yaml          |  1 +
 data/kingsquest2.yaml          |  1 +
 data/kingsquest3.yaml          |  1 +
 data/kingsquest4.yaml          |  3 +++
 data/kingsquest5.yaml          |  2 ++
 data/kingsquest6.yaml          |  2 ++
 data/spacequest1.yaml          | 22 +---------------------
 data/spacequest2.yaml          | 22 +---------------------
 data/spacequest3.yaml          |  2 +-
 data/spacequest4.yaml          |  1 +
 data/spacequest5.yaml          |  1 +
 data/zork.yaml                 |  6 ++++++
 game_data_packager/__init__.py | 20 ++++++++++++++++----
 13 files changed, 37 insertions(+), 47 deletions(-)

diff --git a/data/kingsquest1.yaml b/data/kingsquest1.yaml
index 4a079bd..56510a0 100644
--- a/data/kingsquest1.yaml
+++ b/data/kingsquest1.yaml
@@ -28,6 +28,7 @@ files:
   setup_kings_quest_1_2_3.exe:
     unpack:
       format: innoextract
+      include: ["Kings Quest 1"]
     provides:
     - logdir
     - object
diff --git a/data/kingsquest2.yaml b/data/kingsquest2.yaml
index 3f5e22a..62b1346 100644
--- a/data/kingsquest2.yaml
+++ b/data/kingsquest2.yaml
@@ -27,6 +27,7 @@ files:
   setup_kings_quest_1_2_3.exe:
     unpack:
       format: innoextract
+      include: ["Kings Quest 2"]
     provides:
     - logdir
     - object
diff --git a/data/kingsquest3.yaml b/data/kingsquest3.yaml
index 0f51ff8..5bfd2df 100644
--- a/data/kingsquest3.yaml
+++ b/data/kingsquest3.yaml
@@ -29,6 +29,7 @@ files:
   setup_kings_quest_1_2_3.exe:
     unpack:
       format: innoextract
+      include: ["Kings Quest 3"]
     provides:
     - logdir
     - object
diff --git a/data/kingsquest4.yaml b/data/kingsquest4.yaml
index 99664d2..9753016 100644
--- a/data/kingsquest4.yaml
+++ b/data/kingsquest4.yaml
@@ -24,6 +24,9 @@ files:
   setup_kings_quest_4_5_6.exe:
     unpack:
       format: innoextract
+      include:
+      - "Kings Quest 4"
+      - manual.pdf
     provides:
     - resource.001
     - resource.002
diff --git a/data/kingsquest5.yaml b/data/kingsquest5.yaml
index 04d5122..b5a6743 100644
--- a/data/kingsquest5.yaml
+++ b/data/kingsquest5.yaml
@@ -43,6 +43,8 @@ files:
   setup_kings_quest_4_5_6.exe:
     unpack:
       format: innoextract
+      include:
+      - "Kings Quest 5"
     provides:
     - 0.scr
     - 0.tex
diff --git a/data/kingsquest6.yaml b/data/kingsquest6.yaml
index bd1a0f5..0ed3e24 100644
--- a/data/kingsquest6.yaml
+++ b/data/kingsquest6.yaml
@@ -84,6 +84,8 @@ files:
   setup_kings_quest_4_5_6.exe:
     unpack:
       format: innoextract
+      include:
+      - "Kings Quest 6"
     provides:
     - 420.hep
     - 420.scr
diff --git a/data/spacequest1.yaml b/data/spacequest1.yaml
index 507c3f9..9c732f5 100644
--- a/data/spacequest1.yaml
+++ b/data/spacequest1.yaml
@@ -24,32 +24,12 @@ packages:
     - manual.pdf
 
 files:
-  # generic names for AGI engine games
-  logdir:
-    distinctive_name: false
-  object:
-    distinctive_name: false
-  picdir:
-    distinctive_name: false
-  snddir:
-    distinctive_name: false
-  viewdir:
-    distinctive_name: false
-  vol.0:
-    distinctive_name: false
-  vol.1:
-    distinctive_name: false
-  vol.2:
-    distinctive_name: false
-  words.tok:
-    distinctive_name: false
-
   manual.pdf:
     install_to: $docdir
-    distinctive_name: false
   setup_space_quest_1_2_3.exe:
     unpack:
       format: innoextract
+      include: ["Space Quest 1"]
     provides:
     - logdir
     - object
diff --git a/data/spacequest2.yaml b/data/spacequest2.yaml
index e3d4303..7a89162 100644
--- a/data/spacequest2.yaml
+++ b/data/spacequest2.yaml
@@ -22,32 +22,12 @@ packages:
     - manual.pdf
 
 files:
-  # generic names for AGI engine games
-  logdir:
-    distinctive_name: false
-  object:
-    distinctive_name: false
-  picdir:
-    distinctive_name: false
-  snddir:
-    distinctive_name: false
-  viewdir:
-    distinctive_name: false
-  vol.0:
-    distinctive_name: false
-  vol.1:
-    distinctive_name: false
-  vol.2:
-    distinctive_name: false
-  words.tok:
-    distinctive_name: false
-
   manual.pdf:
     install_to: $docdir
-    distinctive_name: false
   setup_space_quest_1_2_3.exe:
     unpack:
       format: innoextract
+      include: ["Space Quest 2"]
     provides:
     - logdir
     - object
diff --git a/data/spacequest3.yaml b/data/spacequest3.yaml
index 8b5f1df..176f565 100644
--- a/data/spacequest3.yaml
+++ b/data/spacequest3.yaml
@@ -19,10 +19,10 @@ packages:
 files:
   manual.pdf:
     install_to: $docdir
-    distinctive_name: false
   setup_space_quest_1_2_3.exe:
     unpack:
       format: innoextract
+      include: ["Space Quest 3"]
     provides:
     - resource.001
     - resource.002
diff --git a/data/spacequest4.yaml b/data/spacequest4.yaml
index ca78e0c..a4b912a 100644
--- a/data/spacequest4.yaml
+++ b/data/spacequest4.yaml
@@ -55,6 +55,7 @@ files:
   setup_space_quest.exe:
     unpack:
       format: innoextract
+      include: ["Space Quest 4"]
     provides:
     - 335.hep
     - 335.scr
diff --git a/data/spacequest5.yaml b/data/spacequest5.yaml
index cf6ddda..b9942ff 100644
--- a/data/spacequest5.yaml
+++ b/data/spacequest5.yaml
@@ -98,6 +98,7 @@ files:
   setup_space_quest.exe:
     unpack:
       format: innoextract
+      include: ["Space Quest 5"]
     provides:
     - 0.fon
     - 10.fon
diff --git a/data/zork.yaml b/data/zork.yaml
index 3a10f4c..0e6abe9 100644
--- a/data/zork.yaml
+++ b/data/zork.yaml
@@ -101,6 +101,12 @@ files:
   setup_zork_anthology.exe:
     unpack:
       format: innoextract
+      include:
+      - DATA/ZORK1.DAT
+      - DATA/ZORK2.DAT
+      - DATA/ZORK3.DAT
+      - BEYONDZO.DAT
+      - PLANETFA.DAT
     provides:
     - zork1.dat_zip
     - zork2.dat
diff --git a/game_data_packager/__init__.py b/game_data_packager/__init__.py
index b3c87c9..e439db5 100644
--- a/game_data_packager/__init__.py
+++ b/game_data_packager/__init__.py
@@ -700,6 +700,9 @@ class GameData(object):
                     assert len(wanted.provides) == 1, filename
                     assert isinstance(wanted.unpack['other_parts'],
                             list), filename
+                if 'include' in wanted.unpack:
+                    assert isinstance(wanted.unpack['include'],
+                            list), filename
 
             if wanted.alternatives:
                 for alt in wanted.alternatives:
@@ -1573,10 +1576,19 @@ class GameData(object):
                     tmpdir = os.path.join(self.get_workdir(), 'tmp',
                             provider_name + '.d')
                     mkdir_p(tmpdir)
-                    subprocess.check_call(['innoextract', '--silent',
-                        '--language', 'english',
-                        '--lowercase', '-T', 'local', '-d', '.',
-                        os.path.abspath(found_name)], cwd=tmpdir)
+                    cmdline = ['innoextract', '--silent',
+                               '--language', 'english',
+                               '-T', 'local',
+                               '-d', tmpdir,
+                               os.path.abspath(found_name)]
+                    version = subprocess.check_output(['innoextract', '-v'],
+                                            universal_newlines=True)[12:15]
+                    if version != '1.4':
+                        include = provider.unpack.get('include')
+                        for i in include:
+                            cmdline.append('-I')
+                            cmdline.append(i)
+                    subprocess.check_call(cmdline)
                     # for at least Theme Hospital the files we want are
                     # actually in subdirectories, so we search recursively
                     self.consider_file_or_dir(tmpdir)

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