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 d2e3d1da8ad89af1c5c9754effb7e0bc50d95be4
Author: Simon McVittie <s...@debian.org>
Date:   Wed Oct 12 11:16:27 2016 +0100

    launcher: add support for launching expansions
---
 runtime/launcher.py | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

diff --git a/runtime/launcher.py b/runtime/launcher.py
index 9c40cb4..4ea75eb 100755
--- a/runtime/launcher.py
+++ b/runtime/launcher.py
@@ -184,6 +184,8 @@ class Launcher:
                 help='identity of launched game (default: from argv[0])')
         parser.add_argument('--engine', default=None,
                 help='use the specified game engine, if supported')
+        parser.add_argument('--expansion', default=None,
+                help='expansion to launch')
         parser.add_argument('arguments', nargs='*',
                 help='arguments for the launched game')
         self.args = parser.parse_args(argv)
@@ -203,6 +205,22 @@ class Launcher:
             GLib.KEY_FILE_DESKTOP_KEY_ICON)
         logger.debug('Icon: %s', self.icon_name)
 
+        self.expansion_name = self.args.expansion
+
+        try:
+            override_id = self.keyfile.get_string(GLib.KEY_FILE_DESKTOP_GROUP,
+                'X-GameDataPackager-ExpansionFor')
+        except GLib.Error:
+            pass
+        else:
+            if self.expansion_name is None:
+                self.expansion_name = self.id
+
+            if self.expansion_name.startswith(override_id + '-'):
+                self.expansion_name = self.expansion_name[len(override_id) + 
1:]
+
+            self.id = override_id
+
         self.data = json.load(open('%s/launch-%s.json' % (RUNTIME_BUILT,
             self.id), encoding='utf-8'))
 
@@ -265,6 +283,26 @@ class Launcher:
                         self.symlink_into_dot_directory +
                         data.get('symlink_into_dot_directory', []))
 
+            aliases = data.get('aliases', [])
+            if isinstance(aliases, str):
+                aliases = aliases.split()
+
+            if (self.expansion_name == expansion or
+                    self.expansion_name in aliases):
+                extra_argv = data.get('extra_argv', [])
+                if isinstance(extra_argv, str):
+                    extra_argv = extra_argv.split()
+                self.argv = self.argv + extra_argv
+
+                extra_required_files = data.get('extra_required_files', [])
+                if isinstance(extra_required_files, str):
+                    extra_required_files = extra_required_files.split()
+                self.required_files = (self.required_files +
+                        extra_required_files)
+
+                self.base_directories = base_directories
+                break
+
         logger.debug('Arguments: %r', self.argv)
 
     def check_required_files(self, base_directories, required_files,

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

_______________________________________________
Pkg-games-commits mailing list
Pkg-games-commits@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

Reply via email to