diff options
author | Vincent Petithory <vincent.petithory@gmail.com> | 2013-03-28 13:17:45 +0100 |
---|---|---|
committer | Vincent Petithory <vincent.petithory@gmail.com> | 2013-03-28 13:17:45 +0100 |
commit | 42c28dae1dd895dab14f246ed2c78cbb1685819f (patch) | |
tree | bd9859feb2643a7fa9f8d404b3023db4b6fc8893 | |
parent | 15257e49db8a6bfa383306c8ec35f60bfa354468 (diff) | |
download | tools-42c28dae1dd895dab14f246ed2c78cbb1685819f.tar.gz tools-42c28dae1dd895dab14f246ed2c78cbb1685819f.tar.bz2 tools-42c28dae1dd895dab14f246ed2c78cbb1685819f.tar.xz tools-42c28dae1dd895dab14f246ed2c78cbb1685819f.zip |
Add a tool to get data about the maps database.
* Add a command to list maps that do not have a minimap
-rwxr-xr-x | client/map-db.py | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/client/map-db.py b/client/map-db.py new file mode 100755 index 0000000..5215e72 --- /dev/null +++ b/client/map-db.py @@ -0,0 +1,59 @@ +#!/usr/bin/env python +#-*- coding:utf-8 -*- + +import sys +import os +import subprocess +import tempfile +import re + +CLIENT_DATA_ROOT = os.path.realpath( + os.path.join( + os.path.dirname(__file__), + u'..', + ) +) + +MAP_RE = re.compile(r'^(\d{3})-(\d{1})$') + +def list_missing_minimaps(maps, minimaps): + def minimap_wanted(m): + match = MAP_RE.match(m) + if match: + d = match.group(2) + # We ignore indoor maps + if not d == '2': + return True + return False + + missing_minimaps = set([m for m in maps if minimap_wanted(m)]) - set(minimaps) + retcode = len(missing_minimaps) + print '\n'.join(sorted(missing_minimaps)) + return retcode + +def usage(): + sys.stderr.write(u'''Usage: %(prgm_name)s CMD + + Where CMD is one of: + list-missing-minimaps, lm: Lists all maps which do not + have a minimap. + + \n''' % {'prgm_name': sys.argv[0]}) + +def main(): + if not len(sys.argv) > 1: + usage() + return 127 + action = sys.argv[1].lower() + maps = [os.path.splitext(p)[0] for p in os.listdir(os.path.join(CLIENT_DATA_ROOT, u'maps'))] + minimaps = [os.path.splitext(p)[0] for p in os.listdir(os.path.join(CLIENT_DATA_ROOT, u'graphics', u'minimaps'))] + status = 0 + if action in ('list-missing-minimaps', 'lm'): + status = list_missing_minimaps(maps, minimaps) + else: + usage() + return 127 + return status + +if __name__ == '__main__': + sys.exit(main()) |