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 3f39b141d36e956a4184224489e3be9dcad9d654 Author: Alexandre Detiste <[email protected]> Date: Tue Jun 2 12:49:57 2015 +0200 read only one YAML when user specify an existing game (#779937) Now, a dict with shortname + longname could be precomputed somewhere to make 'game-data-packager' & 'game-data-packager --help' faster too. --- debian/changelog | 3 ++- game_data_packager/__init__.py | 26 +++++++++++++++++++++----- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/debian/changelog b/debian/changelog index c86843c..166181d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -11,7 +11,8 @@ game-data-packager (42) UNRELEASED; urgency=medium * add support for Gobliiins (full game & demo) * add support for Leisure Suit Larry 1,2,3,5&6 * add support for Compet-N PWAD's (Closes: #776061) - + * only load actually needed YAML files (Closes: #779937) + -- Simon McVittie <[email protected]> Sun, 03 May 2015 14:34:00 +0200 game-data-packager (41) unstable; urgency=medium diff --git a/game_data_packager/__init__.py b/game_data_packager/__init__.py index 28bdf42..c9699b9 100644 --- a/game_data_packager/__init__.py +++ b/game_data_packager/__init__.py @@ -2792,11 +2792,12 @@ def iter_fat_mounts(folder): if type in ('fat','vfat', 'ntfs'): yield os.path.join(mount, 'Program Files', folder) -def load_games(workdir=None): +def load_games(workdir=None,game='*'): games = {} - for jsonfile in glob.glob(os.path.join(DATADIR, '*.json')): - if sys.stderr.isatty(): print('.', end='', flush=True, file=sys.stderr) + for jsonfile in glob.glob(os.path.join(DATADIR, game + '.json')): + if game == '*' and sys.stderr.isatty(): + print('.', end='', flush=True, file=sys.stderr) try: g = os.path.basename(jsonfile) g = g[:len(g) - 5] @@ -2876,6 +2877,23 @@ def run_command_line(): dest='verbose', help='hide output from external ' 'tools (default)') + + class DumbParser(argparse.ArgumentParser): + def error(self, message): + pass + + dumb_parser = DumbParser(parents=(base_parser,),add_help=False) + dumb_parser.add_argument('game', type=str, nargs='?') + dumb_parser.add_argument('paths', type=str, nargs='*') + dumb_parser.add_argument('-h', '--help', action='store_true', dest='h') + g = dumb_parser.parse_args().game + if g is None: + games = load_games(None) + elif os.path.isfile(os.path.join(DATADIR, '%s.json' % g)): + games = load_games(None, game=g) + else: + games = load_games(None) + parser = argparse.ArgumentParser(prog='game-data-packager', description='Package game files.', parents=(base_parser,), epilog='Run "game-data-packager GAME --help" to see ' + @@ -2884,8 +2902,6 @@ def run_command_line(): game_parsers = parser.add_subparsers(dest='shortname', title='supported games', metavar='GAME') - games = load_games(None) - for g in sorted(games.keys()): games[g].add_parser(game_parsers, base_parser) -- 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 [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

