mirror of
https://github.com/kovidgoyal/kitty
synced 2026-07-26 18:22:09 +02:00
Better error message for people running icat on systems with outdated/broken ImageMagick
This commit is contained in:
@@ -28,7 +28,8 @@ from kitty.utils import (
|
|||||||
|
|
||||||
from ..tui.images import (
|
from ..tui.images import (
|
||||||
ConvertFailed, Dispose, GraphicsCommand, NoImageMagick, OpenFailed,
|
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
|
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)
|
process_single_item(item, cli_opts, parsed_opts, url_pat)
|
||||||
except NoImageMagick as e:
|
except NoImageMagick as e:
|
||||||
raise SystemExit(str(e))
|
raise SystemExit(str(e))
|
||||||
|
except OutdatedImageMagick as e:
|
||||||
|
print(e.detailed_error, file=sys.stderr)
|
||||||
|
raise SystemExit(str(e))
|
||||||
except ConvertFailed as e:
|
except ConvertFailed as e:
|
||||||
raise SystemExit(str(e))
|
raise SystemExit(str(e))
|
||||||
except OpenFailed as e:
|
except OpenFailed as e:
|
||||||
|
|||||||
@@ -118,6 +118,13 @@ class NoImageMagick(Exception):
|
|||||||
pass
|
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] = ()
|
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_width, f.canvas_height = map(positive_int, sz.split('x', 1))
|
||||||
f.canvas_x, f.canvas_y = map(int, pos.split('+', 1))
|
f.canvas_x, f.canvas_y = map(int, pos.split('+', 1))
|
||||||
except Exception:
|
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}'
|
f.path = output_prefix + f'-{index}.{m.mode}'
|
||||||
os.rename(os.path.join(tdir, x), f.path)
|
os.rename(os.path.join(tdir, x), f.path)
|
||||||
check_resize(f)
|
check_resize(f)
|
||||||
|
|||||||
Reference in New Issue
Block a user