blob: f9babfd1f8ce1fd9357acca602902c06e40bcd84 [file] [log] [blame]
from lnt import formats
import click
def _convert_data(input, output, inFormat, outFormat):
out = formats.get_format(outFormat)
if out is None or not out.get('write'):
raise SystemExit("unknown output format: %r" % outFormat)
data = formats.read_any(input, inFormat)
out['write'](data, output)
output.flush()
@click.command("convert")
@click.argument("input", type=click.File('rb'), default="-", required=False)
@click.argument("output", type=click.File('wb'), default="-", required=False)
@click.option("--from", "input_format", show_default=True,
type=click.Choice(formats.format_names + ['<auto>']),
default='<auto>', help="input format")
@click.option("--to", "output_format", show_default=True,
type=click.Choice(formats.format_names + ['<auto>']),
default='plist', help="output format")
def action_convert(input, output, input_format, output_format):
"""convert between input formats"""
import os
import sys
try:
try:
_convert_data(input, output, input_format, output_format)
finally:
if output != sys.stdout:
output.close()
except Exception:
if output != sys.stdout:
os.remove(output)
raise