#!/usr/bin/env python

from ninepatch import Ninepatch

if __name__ == '__main__':
    import argparse
    parser = argparse.ArgumentParser()

    subparsers = parser.add_subparsers(dest='command')

    parser_render = subparsers.add_parser('render', help='render the 9patch to an image')
    parser_render.add_argument('source_filename')
    parser_render.add_argument('width', type=int)
    parser_render.add_argument('height', type=int)
    parser_render.add_argument('target_filename', nargs='?', help='filename or empty to open the viewer')

    parser_slice = subparsers.add_parser('slice', help='slice the 9patch into tiles and save them into a directory')
    parser_slice.add_argument('source_filename')
    parser_slice.add_argument('target_path', help='the directory where the slices should be saved')

    args = parser.parse_args()

    if args.command == 'render':
        ninepatch = Ninepatch(args.source_filename)
        scaled_image = ninepatch.render(args.width, args.height)
        if args.target_filename:
            scaled_image.save(args.target_filename)
        else:
            scaled_image.show()

    elif args.command == 'slice':
        ninepatch = Ninepatch(args.source_filename)
        ninepatch.export_slices(args.target_path)
