#!/bin/bash # Laeuft NUR im Wegwerf-Container (aufgerufen von scripts/vendor.sh). # Gemountet sind ausschliesslich: /in/src.tar.gz (read-only, Hash vorher # geprueft), dieses Skript (read-only) und /out (Ausgabe). Fremder Code # (npm ci, vite build) laeuft damit nie im HOME des Build-Hosts. set -euo pipefail start=$(date +%s) mkdir -p /app && cd /app tar xzf /in/src.tar.gz --strip-components=1 export HUSKY=0 npm ci --no-audit --no-fund >/tmp/npm-ci.log 2>&1 || { tail -50 /tmp/npm-ci.log; exit 1; } t1=$(date +%s); echo "bentopdf: npm ci $((t1-start)) s" # Unterpfad /pdf/ (Worker liefert die Sammlung dort aus). export BASE_URL=/pdf/ # SIMPLE_MODE=true: blendet Navigation, Hero, FAQ, Testimonials und Footer # von bentopdf.com aus, alle Werkzeuge bleiben (SIMPLE_MODE.md, vite.config.ts: # simple-index.html wird index.html). Die Rahmenseite von SW tools ersetzt das. export SIMPLE_MODE=true # Keine Sterne-Abfrage an api.github.com. export DISABLE_GITHUB_STARS=true # o = keine vorkomprimierten .br/.gz-Kopien; Cloudflare komprimiert selbst, # Kopien wuerden nur die Dateianzahl verdoppeln. export COMPRESSION_MODE=o # WASM-Pakete auf derselben Origin (importScripts geht nicht cross-origin). # Pfade nach der Air-gapped-Konvention im BentoPDF-README, aber mit den # Unterordnern, die der Quelltext erwartet (src/js/utils/wasm-provider.ts, # CDN_DEFAULTS): pymupdf an der Paketwurzel, gs unter assets/, cpdf unter dist/. export VITE_WASM_PYMUPDF_URL=/pdf/wasm/pymupdf/ export VITE_WASM_GS_URL=/pdf/wasm/gs/assets/ export VITE_WASM_CPDF_URL=/pdf/wasm/cpdf/dist/ export VITE_TESSERACT_WORKER_URL=/pdf/wasm/ocr/worker.min.js export VITE_TESSERACT_CORE_URL=/pdf/wasm/ocr/core export VITE_TESSERACT_LANG_URL=/pdf/wasm/ocr/lang-data export VITE_TESSERACT_AVAILABLE_LANGUAGES=deu,eng # deu und eng mappen beide auf "Noto Sans" (src/js/config/font-mappings.ts), # es wird also nur NotoSans-Regular.ttf gebraucht -- kommt aus @embedpdf/fonts-latin. export VITE_OCR_FONT_BASE_URL=/pdf/wasm/ocr/fonts # Fallback-Schriften des PDF-Editors (src/js/config/editor-fonts.ts), sonst jsDelivr. export VITE_EMBEDPDF_FONTS_URL=/pdf/wasm/embedpdf export VITE_DEFAULT_LANGUAGE=de # Die 13 Werkzeuge, die LibreOffice-WASM laden (soffice.wasm.gz 48.763.638 B, # ueber der 25-MiB-Grenze). Ermittelt per grep auf libreoffice-loader in # src/js/logic/*-page.ts. Office nach PDF bleibt Server-Werkzeug (W4). export DISABLE_TOOLS="excel-to-pdf,odg-to-pdf,odp-to-pdf,ods-to-pdf,odt-to-pdf,pages-to-pdf,powerpoint-to-pdf,pub-to-pdf,rtf-to-pdf,vsd-to-pdf,word-to-pdf,wpd-to-pdf,wps-to-pdf" npm run build >/tmp/build.log 2>&1 || { tail -80 /tmp/build.log; exit 1; } t2=$(date +%s); echo "bentopdf: build $((t2-t1)) s, gesamt $((t2-start)) s" rm -rf /out/dist cp -r dist /out/dist cp /tmp/build.log /out/build.log