#! /usr/bin/python3

import argparse
import contextlib
import os
import subprocess
import sys


def run(*args):
    try:
        subprocess.run(
            args,
            stdout=subprocess.PIPE,
            stderr=subprocess.STDOUT,
            check=True,
        )
    except subprocess.CalledProcessError as exc:
        sys.stderr.buffer.write(exc.output)
        raise


parser = argparse.ArgumentParser()
parser.add_argument("--size", default=256, type=int)
parser.add_argument("input")
parser.add_argument("output")
args = parser.parse_args()

tmp = "ebook-tmp.png"

try:
    run(
        "ebook-meta",
        "--get-cover",
        tmp,
        args.input,
    )

    run(
        "glycin-thumbnailer",
        *["--input", "file://" + tmp],
        *["--output", str(args.output)],
        *["--size", str(args.size)],
    )
finally:
    with contextlib.suppress(FileNotFoundError):
        os.unlink(tmp)
