diff options
author | Lars-Dominik Braun <lars@6xq.net> | 2019-09-21 11:02:06 +0200 |
---|---|---|
committer | Lars-Dominik Braun <lars@6xq.net> | 2019-09-21 11:02:06 +0200 |
commit | cf0c56e14529a47f54daa62e2e6a9ab0e76c6d12 (patch) | |
tree | 1d006ad7758aef96dab2402465a9961125a33cf1 /lulua/layout.py | |
parent | bdaeaa553c949e4f544f96560ed64b63d18a47b2 (diff) | |
download | lulua-cf0c56e14529a47f54daa62e2e6a9ab0e76c6d12.tar.gz lulua-cf0c56e14529a47f54daa62e2e6a9ab0e76c6d12.tar.bz2 lulua-cf0c56e14529a47f54daa62e2e6a9ab0e76c6d12.zip |
Consolidate command line utils
Diffstat (limited to 'lulua/layout.py')
-rw-r--r-- | lulua/layout.py | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/lulua/layout.py b/lulua/layout.py index 05a6083..5e021fe 100644 --- a/lulua/layout.py +++ b/lulua/layout.py @@ -18,7 +18,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -import sys, re, unicodedata, copy +import sys, re, unicodedata, copy, argparse, logging from enum import IntEnum, unique from collections import defaultdict, namedtuple from itertools import chain @@ -343,9 +343,21 @@ class GenericLayout: defaultLayouts = YamlLoader ('data/layouts', GenericLayout.deserialize) -def importKlc (): - with open (sys.argv[1], 'r', encoding='utf16') as fd: - layers, layerSwitches = Layout.fromKlc (fd) +def importKlc (args): + with open (args.input, 'r', encoding='utf16') as fd: + layers, layerSwitches = GenericLayout.fromKlc (fd) data = {'name': None, 'layout': [{'layer': l, 'modifier': [list (x) for x in layerSwitches[i]]} for i, l in enumerate (layers)]} yaml.dump (data, sys.stdout) +def importFrom (): + parser = argparse.ArgumentParser(description='Import keyboard layouts.') + parser.add_argument('input', metavar='FILE', help='Input file') + subparsers = parser.add_subparsers() + sp = subparsers.add_parser('klc', help='Import from Microsoft Keyboard Layout creator') + sp.set_defaults (func=importKlc) + + logging.basicConfig (level=logging.INFO) + args = parser.parse_args() + + return args.func (args) + |