vendor_chattolib.sh 1.3 KB

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