summaryrefslogtreecommitdiff
path: root/lulua/layout.py
diff options
context:
space:
mode:
authorLars-Dominik Braun <lars@6xq.net>2019-09-21 11:02:06 +0200
committerLars-Dominik Braun <lars@6xq.net>2019-09-21 11:02:06 +0200
commitcf0c56e14529a47f54daa62e2e6a9ab0e76c6d12 (patch)
tree1d006ad7758aef96dab2402465a9961125a33cf1 /lulua/layout.py
parentbdaeaa553c949e4f544f96560ed64b63d18a47b2 (diff)
downloadlulua-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.py20
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)
+