Better error message for people running icat on systems with outdated/broken ImageMagick
This commit is contained in:
parent
02d29d4816
commit
18186da90e
@ -28,7 +28,8 @@ from kitty.utils import (
|
||||
|
||||
from ..tui.images import (
|
||||
ConvertFailed, Dispose, GraphicsCommand, NoImageMagick, OpenFailed,
|
||||
RenderedImage, fsenc, identify, render_as_single_image, render_image
|
||||
OutdatedImageMagick, RenderedImage, fsenc, identify,
|
||||
render_as_single_image, render_image
|
||||
)
|
||||
from ..tui.operations import clear_images_on_screen, raw_mode
|
||||
|
||||
@ -559,6 +560,9 @@ def main(args: List[str] = sys.argv) -> None:
|
||||
process_single_item(item, cli_opts, parsed_opts, url_pat)
|
||||
except NoImageMagick as e:
|
||||
raise SystemExit(str(e))
|
||||
except OutdatedImageMagick as e:
|
||||
print(e.detailed_error, file=sys.stderr)
|
||||
raise SystemExit(str(e))
|
||||
except ConvertFailed as e:
|
||||
raise SystemExit(str(e))
|
||||
except OpenFailed as e:
|
||||
|
||||
@ -118,6 +118,13 @@ class NoImageMagick(Exception):
|
||||
pass
|
||||
|
||||
|
||||
class OutdatedImageMagick(ValueError):
|
||||
|
||||
def __init__(self, detailed_error: str):
|
||||
super().__init__('ImageMagick on this system is too old ImageMagick 7+ required which was first released in 2016')
|
||||
self.detailed_error = detailed_error
|
||||
|
||||
|
||||
last_imagemagick_cmd: Sequence[str] = ()
|
||||
|
||||
|
||||
@ -237,7 +244,7 @@ def render_image(
|
||||
f.canvas_width, f.canvas_height = map(positive_int, sz.split('x', 1))
|
||||
f.canvas_x, f.canvas_y = map(int, pos.split('+', 1))
|
||||
except Exception:
|
||||
raise ValueError(f'Unexpected output filename: {x!r} produced by ImageMagick command: {last_imagemagick_cmd}')
|
||||
raise OutdatedImageMagick(f'Unexpected output filename: {x!r} produced by ImageMagick command: {last_imagemagick_cmd}')
|
||||
f.path = output_prefix + f'-{index}.{m.mode}'
|
||||
os.rename(os.path.join(tdir, x), f.path)
|
||||
check_resize(f)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user