From afc90a9f288afa6068e9ce525754503048a6bdd8 Mon Sep 17 00:00:00 2001 From: Mathias Date: Tue, 6 Oct 2026 08:10:23 +0200 Subject: [PATCH] metadata writer: add guard for exiftools installed on system level --- src/photools3/metadata_writer.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/photools3/metadata_writer.py b/src/photools3/metadata_writer.py index 0e2df60..e2d8b8f 100644 --- a/src/photools3/metadata_writer.py +++ b/src/photools3/metadata_writer.py @@ -1,4 +1,5 @@ import logging +import shutil from pathlib import Path from typing import Annotated, Any @@ -9,6 +10,13 @@ from photools3.settings import settings log = logging.getLogger(__name__) +_EXIFTOOL_MISSING_MSG = ( + "exiftool binary not found in PATH. " + "Install the system package: 'perl-image-exiftool' (Arch) or 'libimage-exiftool-perl' (Debian/Ubuntu)." +) +if shutil.which("exiftool") is None: + raise FileNotFoundError(_EXIFTOOL_MISSING_MSG) + # File extensions that should use XMP sidecars SIDECAR_EXTENSIONS = {".dng", ".nef", ".cr2", ".cr3", ".arw", ".raf", ".orf", ".rw2"}