#!/usr/bin/python3 import argparse import logging import os.path import sys from keyman_config import __version__ def main(): parser = argparse.ArgumentParser(description='Convert a Keyman kvk on-screen keyboard file to an LDML file. Optionally print the details of the kvk file.') parser.add_argument('-p', "--print", help='print kvk details', action="store_true") parser.add_argument('-k', "--keys", help='if printing also print all keys', action="store_true") parser.add_argument('kvkfile', help='kvk file') parser.add_argument('-o', '--output', metavar='LDMLFILE', help='output LDML file location') parser.add_argument('--version', action='version', version='%(prog)s version '+__version__) parser.add_argument('-v', '--verbose', action='store_true', help='verbose logging') parser.add_argument('-vv', '--veryverbose', action='store_true', help='very verbose logging') args = parser.parse_args() if args.verbose: logging.basicConfig(level=logging.INFO, format='%(levelname)s:%(message)s') elif args.veryverbose: logging.basicConfig(level=logging.DEBUG, format='%(levelname)s:%(message)s') else: logging.basicConfig(format='%(levelname)s:%(message)s') from keyman_config.kvk2ldml import parse_kvk_file, print_kvk, convert_ldml, output_ldml name, ext = os.path.splitext(args.kvkfile) # Check if input file extension is kvk if ext != ".kvk": logging.error("km-kvk2ldml: error, input file %s is not a kvk file.", args.kvkfile) logging.error("km-kvk2ldml [-h] [-k] [-p] [-o ] ") sys.exit(2) # Check if input kvk file exists if not os.path.isfile(args.kvkfile): logging.error("km-kvk2ldml: error, input file %s does not exist.", args.kvkfile) logging.error("km-kvk2ldml [-h] [-k] [-p] [-o ] ") sys.exit(2) kvkData = parse_kvk_file(args.kvkfile) if args.print: print_kvk(kvkData, args.keys) if args.output: outputfile = args.output else: outputfile = name + ".ldml" with open(outputfile, 'wb') as ldmlfile: ldml = convert_ldml(kvkData) output_ldml(ldmlfile, ldml) if __name__ == "__main__": main()