#! /usr/bin/env python
import sys
from mako.template import Template
from functools import partial
[docs]def parse_template(file_in, file_out):
def _X(i, padding = None):
padding = ('0' + str(padding)) if padding is not None else ''
return ('0x%' + padding + 'X') % i
X = _X
X2 = partial(_X, padding = 2)
X4 = partial(_X, padding = 4)
X8 = partial(_X, padding = 8)
with open(file_in, 'r') as f_in:
s = Template(f_in.read()).render(X = X, X2 = X2, X4 = X4, X8 = X8)
if file_out == '-':
sys.stdout.write(s)
else:
with open(file_out, 'w') as f_out:
f_out.write(s)
[docs]def main():
import optparse
from . import add_common_options, parse_options
parser = optparse.OptionParser()
add_common_options(parser)
group = optparse.OptionGroup(parser, 'File options')
parser.add_option_group(group)
group.add_option('-i', dest = 'file_in', default = None, help = 'Input file')
group.add_option('-o', dest = 'file_out', default = None, help = 'Output file')
group.add_option('-f', dest = 'force', default = False, action = 'store_true', help = 'Force overwrite of the output file')
options, logger = parse_options(parser)
if not options.file_in:
parser.print_help()
sys.exit(1)
parse_template(options.file_in, options.file_out)