wesnoth/data/tools/extractbindings

48 lines
1.3 KiB
Python
Executable File

#!/usr/bin/env python
#
# Extract and format a list of bindings from a theme file.
# Presently this generates a table suitable for wiki inclusion.
import sys
def report(binding, description):
"Reporter suitable for a wiki inclusion"
tabcolumn=-32
print " %*s%s" % (tabcolumn, binding, description)
def strip(st):
if st.startswith('"'):
st = st[1:-1]
return st
in_keydef = False
entry = {}
for line in sys.stdin:
line=line.strip()
if line.startswith("#!"):
(key, explanation) = line.split("=")
report(key[3:], explanation)
elif line.startswith("#"):
continue
elif line == "[hotkey]":
in_keydef = True
elif in_keydef:
if line == "[/hotkey]":
binding = ''
# Presently we ignore the Mac command key
for mod in ("ctrl", "alt", "shift"):
if mod in entry and entry[mod] == 'yes':
binding += mod + "-"
binding += strip(entry['key'])
report(binding, strip(entry['description']))
in_keydef = False
entry = {}
else:
try:
(key, value) = line.split("=")
except ValueError:
print >>sys.stderr, "Malformed line: %s" % repr(line)
sys.exit(1)
entry[key] = value