Adding backend specific template and output defaults.
This commit is contained in:
parent
5af3e3a0b5
commit
8442567937
@ -36,6 +36,10 @@ from kll_lib.backends import *
|
|||||||
### Classes ###
|
### Classes ###
|
||||||
|
|
||||||
class Backend( BackendBase ):
|
class Backend( BackendBase ):
|
||||||
|
# Default templates and output files
|
||||||
|
templatePaths = ["templates/kiibohdKeymap.h", "templates/kiibohdDefs.h"]
|
||||||
|
outputPaths = ["generatedKeymap.h", "kll_defs.h"]
|
||||||
|
|
||||||
# USB Code Capability Name
|
# USB Code Capability Name
|
||||||
def usbCodeCapability( self ):
|
def usbCodeCapability( self ):
|
||||||
return "usbKeyOut";
|
return "usbKeyOut";
|
||||||
|
9
kll.py
9
kll.py
@ -83,7 +83,8 @@ def processCommandLineArgs():
|
|||||||
# Optional Arguments
|
# Optional Arguments
|
||||||
pArgs.add_argument( '-b', '--backend', type=str, default="kiibohd",
|
pArgs.add_argument( '-b', '--backend', type=str, default="kiibohd",
|
||||||
help="Specify target backend for the KLL compiler.\n"
|
help="Specify target backend for the KLL compiler.\n"
|
||||||
"Default: kiibohd" )
|
"Default: kiibohd\n"
|
||||||
|
"Options: kiibohd, json" )
|
||||||
pArgs.add_argument( '-d', '--default', type=str, nargs='+',
|
pArgs.add_argument( '-d', '--default', type=str, nargs='+',
|
||||||
help="Specify .kll files to layer on top of the default map to create a combined map." )
|
help="Specify .kll files to layer on top of the default map to create a combined map." )
|
||||||
pArgs.add_argument( '-p', '--partial', type=str, nargs='+', action='append',
|
pArgs.add_argument( '-p', '--partial', type=str, nargs='+', action='append',
|
||||||
@ -91,13 +92,11 @@ def processCommandLineArgs():
|
|||||||
"Each -p defines another partial map.\n"
|
"Each -p defines another partial map.\n"
|
||||||
"Base .kll files (that define the scan code maps) must be defined for each partial map." )
|
"Base .kll files (that define the scan code maps) must be defined for each partial map." )
|
||||||
pArgs.add_argument( '-t', '--templates', type=str, nargs='+',
|
pArgs.add_argument( '-t', '--templates', type=str, nargs='+',
|
||||||
default=["templates/kiibohdKeymap.h", "templates/kiibohdDefs.h"],
|
|
||||||
help="Specify template used to generate the keymap.\n"
|
help="Specify template used to generate the keymap.\n"
|
||||||
"Default: templates/kiibohdKeymap.h templates/kiibohdDefs.h" )
|
"Default: <backend specific>" )
|
||||||
pArgs.add_argument( '-o', '--outputs', type=str, nargs='+',
|
pArgs.add_argument( '-o', '--outputs', type=str, nargs='+',
|
||||||
default=["generatedKeymap.h", "kll_defs.h"],
|
|
||||||
help="Specify output file. Writes to current working directory by default.\n"
|
help="Specify output file. Writes to current working directory by default.\n"
|
||||||
"Default: generatedKeymap.h kll_defs.h" )
|
"Default: <backend specific>" )
|
||||||
pArgs.add_argument( '-h', '--help', action="help",
|
pArgs.add_argument( '-h', '--help', action="help",
|
||||||
help="This message." )
|
help="This message." )
|
||||||
|
|
||||||
|
@ -36,15 +36,22 @@ WARNING = '\033[5;1;33mWARNING\033[0m:'
|
|||||||
### Classes ###
|
### Classes ###
|
||||||
|
|
||||||
class BackendBase:
|
class BackendBase:
|
||||||
|
# Default templates and output files
|
||||||
|
templatePaths = []
|
||||||
|
outputPaths = []
|
||||||
|
|
||||||
# Initializes backend
|
# Initializes backend
|
||||||
# Looks for template file and builds list of fill tags
|
# Looks for template file and builds list of fill tags
|
||||||
def __init__( self, templatePaths=[] ):
|
def __init__( self, templatePaths ):
|
||||||
|
# Use defaults if no template is specified
|
||||||
|
if templatePaths is not None:
|
||||||
self.templatePaths = templatePaths
|
self.templatePaths = templatePaths
|
||||||
|
|
||||||
self.fill_dict = dict()
|
self.fill_dict = dict()
|
||||||
|
|
||||||
# Process each template and add to tagList
|
# Process each template and add to tagList
|
||||||
self.tagList = []
|
self.tagList = []
|
||||||
for templatePath in templatePaths:
|
for templatePath in self.templatePaths:
|
||||||
# Does template exist?
|
# Does template exist?
|
||||||
if not os.path.isfile( templatePath ):
|
if not os.path.isfile( templatePath ):
|
||||||
print ( "{0} '{1}' does not exist...".format( ERROR, templatePath ) )
|
print ( "{0} '{1}' does not exist...".format( ERROR, templatePath ) )
|
||||||
@ -73,6 +80,10 @@ class BackendBase:
|
|||||||
|
|
||||||
# Generates the output keymap with fill tags filled
|
# Generates the output keymap with fill tags filled
|
||||||
def generate( self, outputPaths ):
|
def generate( self, outputPaths ):
|
||||||
|
# Use default if not specified
|
||||||
|
if outputPaths is None:
|
||||||
|
outputPaths = self.outputPaths
|
||||||
|
|
||||||
for templatePath, outputPath in zip( self.templatePaths, outputPaths ):
|
for templatePath, outputPath in zip( self.templatePaths, outputPaths ):
|
||||||
# Process each line of the template, outputting to the target path
|
# Process each line of the template, outputting to the target path
|
||||||
with open( outputPath, 'w' ) as outputFile:
|
with open( outputPath, 'w' ) as outputFile:
|
||||||
|
Reference in New Issue
Block a user