[game-data-packager] 42/51: make_template: Allow basing the template on an existing game

Simon McVittie smcv at debian.org
Fri Dec 29 01:23:37 UTC 2017


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 1a76db98ff3a558a0f377c8f5c8e2c3da377bb4a
Author: Simon McVittie <smcv at debian.org>
Date:   Thu Dec 28 20:30:47 2017 +0000

    make_template: Allow basing the template on an existing game
    
    Signed-off-by: Simon McVittie <smcv at debian.org>
---
 game_data_packager/make_template.py | 25 +++++++++++++++++++------
 1 file changed, 19 insertions(+), 6 deletions(-)

diff --git a/game_data_packager/make_template.py b/game_data_packager/make_template.py
index eded31b..42f790e 100644
--- a/game_data_packager/make_template.py
+++ b/game_data_packager/make_template.py
@@ -36,7 +36,7 @@ except ImportError:
     ON_DEBIAN = False
 
 from .data import (FileGroup, HashedFile, PackageRelation, WantedFile)
-from .game import (GameData)
+from .game import (GameData, load_games)
 from .gog import GOG
 from .steam import parse_acf
 from .unpack import (DpkgDebUnpacker, TarUnpacker)
@@ -821,6 +821,8 @@ def main():
     parser.add_argument(
         '--strip-path', action='append', dest='strip_paths', default=[],
         help='Strip a prefix from all filenames (may be repeated)')
+    parser.add_argument(
+        '--base', default=None, help='Base the template on an existing game')
     parser.add_argument('-l', '--lower', action='store_true', dest='lower',
             help='make all files lowercase')
     parser.add_argument('-e', '--execute', action='store_true', dest='execute',
@@ -834,15 +836,26 @@ def main():
     if args.execute:
         do_one_exec(args.args,args.lower)
         return
+
     if args.flacsums:
         do_flacsums(args.args[0],args.lower)
         return
 
-    game = GameData('__template__',
-        dict(
-            copyright='© 1970 FIXME',
-            packages={},
-        ))
+    if args.base is None:
+        game = GameData('__template__',
+            dict(
+                copyright='© 1970 FIXME',
+                packages={},
+            ))
+    else:
+        games = load_games(args.base)
+
+        if args.base not in games:
+            raise SystemExit('Unable to load game %r' % args.base)
+
+        game = games[args.base]
+
+    game.load_file_data()
     template = Template(game, strip_paths=args.strip_paths)
 
     # "./run make-template setup_<game>.exe gog_<game>.deb"

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