From c1eefc085748f215de2de60196db0065042432a3 Mon Sep 17 00:00:00 2001 From: MrFlounder Date: Fri, 13 Mar 2026 20:27:05 -0700 Subject: [PATCH] feat(compare): auto-install poppler for PDF support Install poppler automatically during asset setup and --update-assets so PDF comparison works out of the box on new machines. Co-Authored-By: Claude Opus 4.6 --- src/crabcode | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/crabcode b/src/crabcode index ef63e3b..6c23ebf 100755 --- a/src/crabcode +++ b/src/crabcode @@ -10011,6 +10011,25 @@ compare_pdf_to_text() { fi } +compare_ensure_poppler() { + if command_exists pdftotext; then + return 0 + fi + + echo -e "${CYAN}Installing poppler (for PDF comparison support)...${NC}" + if [[ "$OSTYPE" == "darwin"* ]] && command_exists brew; then + brew install poppler || { error "Failed to install poppler via brew."; return 1; } + elif command_exists apt-get; then + sudo apt-get install -y poppler-utils || { error "Failed to install poppler-utils via apt."; return 1; } + elif command_exists dnf; then + sudo dnf install -y poppler-utils || { error "Failed to install poppler-utils via dnf."; return 1; } + else + error "Could not auto-install poppler. Please install 'poppler-utils' manually." + return 1 + fi + echo -e "${GREEN}poppler installed${NC}" +} + compare_ensure_assets() { local version_file="$COMPARE_ASSETS_DIR/.version" @@ -10033,6 +10052,9 @@ compare_ensure_assets() { return 1 fi + # Ensure poppler is available for PDF support + compare_ensure_poppler + echo "$COMPARE_ASSETS_VERSION" > "$version_file" echo -e "${GREEN}Assets downloaded${NC}" } @@ -10049,7 +10071,9 @@ cmd_compare() { "--update-assets"|"--update") rm -rf "$COMPARE_ASSETS_DIR" compare_ensure_assets - return $? + local rc=$? + compare_ensure_poppler + return $rc ;; esac