# The function generating the progress bar (if any).
def create_progress_bar(verbose):
- def noop_progress_bar(x, total):
+ def noop_progress_bar(x, total, file=None):
return x
progress_bar = noop_progress_bar
class XkbcommonInvocation(Invocation):
+ UNRECOGNIZED_KEYSYM_ERROR = "XKB-107"
+
def run(self):
r, m, l, v, o = self.rmlvo
args = [
try:
output = subprocess.check_output(args, stderr=subprocess.STDOUT,
universal_newlines=True)
- if "unrecognized keysym" in output:
+ if self.UNRECOGNIZED_KEYSYM_ERROR in output:
for line in output.split('\n'):
- if "unrecognized keysym" in line:
+ if self.UNRECOGNIZED_KEYSYM_ERROR in line:
self.error = line
self.exitstatus = 99 # tool doesn't generate this one
else:
failed = False
with multiprocessing.Pool(njobs) as p:
results = p.imap_unordered(tool, combos)
- for invocation in progress_bar(results, total=len(combos)):
+ for invocation in progress_bar(results, total=len(combos), file=sys.stdout):
if invocation.exitstatus != 0:
failed = True
target = sys.stderr
}
parser = argparse.ArgumentParser(
- description='Tool to test all layout/variant/option combinations.'
+ description='''
+ This tool compiles a keymap for each layout, variant and
+ options combination in the given rules XML file. The output
+ of this tool is YAML, use your favorite YAML parser to
+ extract error messages. Errors are printed to stderr.
+ '''
)
parser.add_argument('path', metavar='/path/to/evdev.xml',
nargs='?', type=str,