diff options
Diffstat (limited to 'bin')
| -rwxr-xr-x | bin/gen-input-inx | 50 |
1 files changed, 38 insertions, 12 deletions
diff --git a/bin/gen-input-inx b/bin/gen-input-inx index c88931ee..5d65acca 100755 --- a/bin/gen-input-inx +++ b/bin/gen-input-inx @@ -1,19 +1,45 @@ #!/usr/bin/env python -import sys - -sys.path.append('embroidermodder/experimental/python/binding') +import sys, os +from os.path import dirname from libembroidery import * +from jinja2 import Environment, FileSystemLoader, select_autoescape + + +def build_environment(): + template_dir = os.path.join(dirname(dirname(os.path.realpath(__file__))), "templates") + + return Environment( + loader = FileSystemLoader(template_dir), + autoescape = select_autoescape(['xml']) + ) + + +def libembroidery_input_formats(): + formatList = embFormatList_create() + curFormat = formatList + while(curFormat): + extension = embFormat_extension(curFormat) + description = embFormat_description(curFormat) + writerState = embFormat_readerState(curFormat) + + if writerState.strip() and embFormat_type(curFormat) != EMBFORMAT_OBJECTONLY: + # extension includes the dot, so we'll remove it + yield extension[1:], description + + curFormat = curFormat.next + + +def main(): + env = build_environment() + template = env.get_template('embroider_input.inx') -formatList = embFormatList_create() -curFormat = formatList -while(curFormat): - extension = embFormat_extension(curFormat) - description = embFormat_description(curFormat) - writerState = embFormat_readerState(curFormat) + for format, description in libembroidery_input_formats(): + inx = template.render(format=format, description=description) - if writerState.strip() and embFormat_type(curFormat) != EMBFORMAT_OBJECTONLY: - print extension + with open("embroider_input_%s.inx" % format.upper(), 'w') as inx_file: + inx_file.write(inx) - curFormat = curFormat.next +if __name__ == "__main__": + sys.exit(main()) |
