#!/bin/bash # Vendoring script for hermes-chatto-plugin # Downloads dependencies from pyproject.toml using uv and vendors them into chattolib_vendor/ # Usage: ./vendor_chattolib.sh set -euo pipefail PLUGIN_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" VENDOR_DIR="$PLUGIN_DIR/vendor" echo "Vendoring dependencies from pyproject.toml using uv..." echo "🧹 Bereinige alten vendor-Ordner..." rm -rf "$VENDOR_DIR" mkdir -p "$VENDOR_DIR" # Create a temporary virtual environment uv venv .venv --clear # Set environment variables for the venv # shellcheck disable=SC1091 source .venv/bin/activate cd "${PLUGIN_DIR}" uv pip install --target "$VENDOR_DIR" 'chattolib>=0.4.20' echo "📦 Installiere chattolib und alle Abhängigkeiten in den vendor-Ordner..." # pip install --target installiert das Paket und ALLE Abhängigkeiten (wie connectrpc) # direkt in den angegebenen Ordner, völlig isoliert vom restlichen System. # Create __init__.py to make it importable echo "📄 Erstelle __init__.py..." touch "$VENDOR_DIR/__init__.py" touch "$VENDOR_DIR/chattolib/__init__.py" echo "Lösche unnötige Meta-Ordner, um Platz zu sparen" find "$VENDOR_DIR" -type d -name "__pycache__" -exec rm -rf {} + echo "✓ Dependencies vendored successfully to ${PLUGIN_DIR}/vendor/chattolib/" echo "do 'git add vendor/' now or later"