X-Git-Url: https://git.donarmstrong.com/?p=kiibohd-kll.git;a=blobdiff_plain;f=kll_lib%2Fbackends.py;h=09d430da69769b9383aa1389483ab03d0dff210f;hp=38ce9168b28a317298a9c3de8cd72b2cdb41ec90;hb=5af3e3a0b549e00eb84ac8bb038dc2b9a870f3aa;hpb=7d0094ed3affc1219a83caf5cc2422ea0923816f diff --git a/kll_lib/backends.py b/kll_lib/backends.py index 38ce916..09d430d 100644 --- a/kll_lib/backends.py +++ b/kll_lib/backends.py @@ -38,28 +38,24 @@ WARNING = '\033[5;1;33mWARNING\033[0m:' class BackendBase: # Initializes backend # Looks for template file and builds list of fill tags - def __init__( self, templatePath, definesTemplatePath ): - # Does template exist? - if not os.path.isfile( templatePath ): - print ( "{0} '{1}' does not exist...".format( ERROR, templatePath ) ) - sys.exit( 1 ) - - self.definesTemplatePath = definesTemplatePath - self.templatePath = templatePath + def __init__( self, templatePaths=[] ): + self.templatePaths = templatePaths self.fill_dict = dict() - # Generate list of fill tags + # Process each template and add to tagList self.tagList = [] - with open( templatePath, 'r' ) as openFile: - for line in openFile: - match = re.findall( '<\|([^|>]+)\|>', line ) - for item in match: - self.tagList.append( item ) - with open( definesTemplatePath, 'r' ) as openFile: - for line in openFile: - match = re.findall( '<\|([^|>]+)\|>', line ) - for item in match: - self.tagList.append( item ) + for templatePath in templatePaths: + # Does template exist? + if not os.path.isfile( templatePath ): + print ( "{0} '{1}' does not exist...".format( ERROR, templatePath ) ) + sys.exit( 1 ) + + # Generate list of fill tags + with open( templatePath, 'r' ) as openFile: + for line in openFile: + match = re.findall( '<\|([^|>]+)\|>', line ) + for item in match: + self.tagList.append( item ) # USB Code Capability Name @@ -69,44 +65,29 @@ class BackendBase: # Processes content for fill tags and does any needed dataset calculations + # XXX Make sure to override def process( self, capabilities, macros, variables, gitRev, gitChanges ): print ( "{0} BackendBase 'process' function must be overridden".format( ERROR ) ) sys.exit( 2 ) # Generates the output keymap with fill tags filled - def generate( self, outputPath, definesOutputPath ): - # Process each line of the template, outputting to the target path - with open( outputPath, 'w' ) as outputFile: - with open( self.templatePath, 'r' ) as templateFile: - for line in templateFile: - # TODO Support multiple replacements per line - # TODO Support replacement with other text inline - match = re.findall( '<\|([^|>]+)\|>', line ) - - # If match, replace with processed variable - if match: - outputFile.write( self.fill_dict[ match[ 0 ] ] ) - outputFile.write("\n") - - # Otherwise, just append template to output file - else: - outputFile.write( line ) - - # Process each line of the defines template, outputting to the target path - with open( definesOutputPath, 'w' ) as outputFile: - with open( self.definesTemplatePath, 'r' ) as templateFile: - for line in templateFile: - # TODO Support multiple replacements per line - # TODO Support replacement with other text inline - match = re.findall( '<\|([^|>]+)\|>', line ) - - # If match, replace with processed variable - if match: - outputFile.write( self.fill_dict[ match[ 0 ] ] ) - outputFile.write("\n") - - # Otherwise, just append template to output file - else: - outputFile.write( line ) + def generate( self, outputPaths ): + for templatePath, outputPath in zip( self.templatePaths, outputPaths ): + # Process each line of the template, outputting to the target path + with open( outputPath, 'w' ) as outputFile: + with open( templatePath, 'r' ) as templateFile: + for line in templateFile: + # TODO Support multiple replacements per line + # TODO Support replacement with other text inline + match = re.findall( '<\|([^|>]+)\|>', line ) + + # If match, replace with processed variable + if match: + outputFile.write( self.fill_dict[ match[ 0 ] ] ) + outputFile.write("\n") + + # Otherwise, just append template to output file + else: + outputFile.write( line )