[game-data-packager] 01/01: make-template: automatic hangling of dubbed GOG.com game archives ...
Alexandre Detiste
detiste-guest at moszumanska.debian.org
Tue Oct 6 20:49:39 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 58cf11b7a30ace5bed9b248f6f3e20870668e0c4
Author: Alexandre Detiste <alexandre.detiste at gmail.com>
Date: Tue Oct 6 22:47:41 2015 +0200
make-template: automatic hangling of dubbed GOG.com game archives ...
just run:
./run make_template setup_<game>.exe setup_<game>_french.exe setup_<game>_german.exe
language autodetection doesn't work for already unpacked games
---
game_data_packager/make_template.py | 61 ++++++++++++++++++++++++++++---------
1 file changed, 46 insertions(+), 15 deletions(-)
diff --git a/game_data_packager/make_template.py b/game_data_packager/make_template.py
index 75cb23e..e322694 100644
--- a/game_data_packager/make_template.py
+++ b/game_data_packager/make_template.py
@@ -54,6 +54,11 @@ def guess_lang(string):
('ru', 'russian')]:
if long in string:
return short
+ # check against other args
+ for lang in ('german', 'spanish', 'french', 'italian', 'polish', 'russian'):
+ for arg in sys.argv:
+ if lang in arg:
+ return 'en'
def is_license(file):
file = file.split('?')[0]
@@ -112,9 +117,11 @@ class GameData(object):
self.gog_game = None
self.data = dict()
+ # global list of files accross packages
self.install = set()
self.optional = set()
self.license = set()
+ self.loose_file = set()
self.files = dict(files={})
self.size = {}
@@ -139,12 +146,12 @@ class GameData(object):
pass
elif is_license(name):
out_name = os.path.basename(out_name)
- self.license.add(out_name)
+ self.loose_file.add(out_name)
elif is_doc(name):
- self.optional.add(out_name)
+ self.loose_file.add(out_name)
self.files['files'][out_name] = dict(install_to='$docdir')
else:
- self.install.add(out_name)
+ self.loose_file.add(out_name)
hf = HashedFile.from_file(name, open(name, 'rb'))
self.size[out_name] = size = os.path.getsize(name)
@@ -185,6 +192,10 @@ class GameData(object):
self.package['lang'] = lang
self.package['debian'] = { 'provides' : virtual }
+ self.package['install'] = []
+ self.package['optional'] = []
+ self.package['license'] = []
+
if steam > 0:
self.package['steam'] = steam_dict
@@ -218,7 +229,7 @@ class GameData(object):
hf = HashedFile.from_file(name, open(path, 'rb'))
if out_name in self.size:
if (size == self.size[out_name] and hf.md5 == self.md5[out_name]):
- continue
+ pass
elif lang:
out_name += ('?' + lang)
else:
@@ -227,11 +238,14 @@ class GameData(object):
if is_license(fn):
out_name = os.path.basename(out_name)
self.license.add(out_name)
+ self.package['license'].append(out_name)
elif is_doc(fn):
self.optional.add(out_name)
+ self.package['optional'].append(out_name)
self.files['files'][out_name] = dict(install_to='$docdir')
else:
self.install.add(out_name)
+ self.package['install'].append(out_name)
self.size[out_name] = size
self.md5[out_name] = hf.md5
@@ -246,6 +260,16 @@ class GameData(object):
if self.plugin != 'scummvm_common':
self.package['install_to'] = 'usr/share/games/' + game
+ self.package['install'].sort()
+ if self.package['optional']:
+ self.package['optional'].sort()
+ else:
+ del self.package['optional']
+ if self.package['license']:
+ self.package['license'].sort()
+ else:
+ del self.package['license']
+
def add_one_zip(self,archive):
# TODO
return
@@ -331,6 +355,9 @@ class GameData(object):
self.data = dict(packages={ control['package']: {} })
self.package = self.data['packages'][control['package']]
+ self.package['install'] = []
+ self.package['optional'] = []
+ self.package['license'] = []
install_to = None
with subprocess.Popen(['dpkg-deb', '--fsys-tarfile', deb],
@@ -387,9 +414,11 @@ class GameData(object):
elif name.startswith('opt/') and is_license(name):
name = basename_l
self.license.add(name)
+ self.package['license'].append(name)
elif name.startswith('opt/') and is_doc(name):
name = basename_l
self.optional.add(name)
+ self.package['optional'].append(name)
self.files['files'][name] = dict(install_to='$docdir')
elif (install_to is not None and
name.startswith(install_to + '/')):
@@ -399,6 +428,7 @@ class GameData(object):
if self.gog_url and name.startswith('data/'):
name = name[len('data/'):]
self.install.add(name)
+ self.package['install'].append(name)
else:
self.optional.add(name)
self.files['files'][name] = dict(install_to='.')
@@ -418,6 +448,15 @@ class GameData(object):
if self.plugin != 'scummvm_common':
self.package['install_to'] = install_to
+ self.package['install'].sort()
+ if self.package['optional']:
+ self.package['optional'].sort()
+ else:
+ del self.package['optional']
+ if self.package['license']:
+ self.package['license'].sort()
+ else:
+ del self.package['license']
def to_yaml(self):
print('---')
@@ -441,17 +480,9 @@ class GameData(object):
print('')
yaml.safe_dump(self.data, stream=sys.stdout, default_flow_style=False)
- print(' install:')
- for file in sorted(self.install):
- print(' - %s' % file)
-
- if self.optional:
- print(' optional:')
- for file in sorted(self.optional):
- print(' - %s' % file)
- if self.license:
- print(' license:')
- for file in sorted(self.license):
+ if self.loose_file:
+ print(' XXX:')
+ for file in sorted(self.loose_file):
print(' - %s' % file)
if self.files['files']:
--
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