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 1f05aea8e8fc2c751732ba0bfa0b4ff981eeff86 Author: Simon McVittie <s...@debian.org> Date: Wed Oct 12 11:11:36 2016 +0100 launcher: add support for multiple engines --- runtime/launcher.py | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/runtime/launcher.py b/runtime/launcher.py index 9d3445d..724385a 100755 --- a/runtime/launcher.py +++ b/runtime/launcher.py @@ -178,9 +178,12 @@ class Launcher: if name.endswith('.py'): name = name[:-3] - parser = argparse.ArgumentParser() + parser = argparse.ArgumentParser( + description="game-data-packager's game launcher") parser.add_argument('--id', default=name, - help='identity of launched game (default: %s)' % name) + 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('arguments', nargs='*', help='arguments for the launched game') self.args = parser.parse_args(argv) @@ -212,6 +215,15 @@ class Launcher: '${XDG_DATA_HOME}/' + self.id)) logger.debug('Dot directory: %s', self.dot_directory) + if 'engine' in self.data: + self.engines = [self.data['engine']] + elif 'engines' in self.data: + self.engines = self.data['engines'] + else: + self.engines = [] + + self.engine = None + self.base_directories = list(map(expand, self.data.get('base_directories', ['/usr/lib/' + self.id]))) @@ -261,6 +273,24 @@ class Launcher: return True def main(self): + if self.engines: + for e in self.engines: + e = expand(e) + if shutil.which(e) is not None: + self.engine = e + break + else: + gui = Gui(self) + gui.text_view.get_buffer().set_text( + '\n'.join( + [self.load_text('missing-engine.txt', + 'Game engine missing, tried:')] + + [expand(e) for e in engines])) + gui.window.show_all() + gui.check_box.hide() + Gtk.main() + sys.exit(72) # EX_OSFILE + for p in self.base_directories: logger.debug('Searching: %s' % p) @@ -476,6 +506,9 @@ class Launcher: self.argv = [expand(a, base_directory=base_directory) for a in self.argv] + if self.engine is not None: + self.argv.insert(0, self.engine) + self.flush() environ = os.environ.copy() -- 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