#!/usr/bin/env bash # Descarga 7zz y bibliotecas ODBC para empaquetar en el binario Linux. set -euo pipefail ROOT="$(cd "$(dirname "$0")/../.." && pwd)" VERSIONS="$ROOT/packaging/bundled-versions.json" BUNDLED="$ROOT/packaging/bundled/linux" SEVEN="$BUNDLED/7zip" ODBC="$BUNDLED/odbc/lib" mkdir -p "$SEVEN" "$ODBC" read_url() { python3 -c "import json; print(json.load(open('$VERSIONS'))['$1'])" } LINUX_7Z_URL="$(read_url seven_zip_linux_x64)" MSODBC_DEB="$(read_url msodbcsql18_deb)" echo "==> 7-Zip Linux (7zz)" if [[ ! -f "$SEVEN/7zz" ]]; then TMP=$(mktemp -d) curl -fsSL -o "$TMP/7z.tar.xz" "$LINUX_7Z_URL" tar -xJf "$TMP/7z.tar.xz" -C "$TMP" cp "$TMP/7zz" "$SEVEN/7zz" chmod +x "$SEVEN/7zz" rm -rf "$TMP" echo " 7zz instalado" else echo " 7zz ya existe" fi echo "==> ODBC Driver 18 + unixODBC" if [[ -z "$(ls -A "$ODBC" 2>/dev/null || true)" ]]; then TMP=$(mktemp -d) cd "$TMP" curl -fsSL -o msodbcsql18.deb "$MSODBC_DEB" if command -v apt-get >/dev/null 2>&1; then export DEBIAN_FRONTEND=noninteractive apt-get update -qq apt-get install -y -qq unixodbc dpkg-dev > /dev/null 2>&1 || true if dpkg -l unixodbc 2>/dev/null | grep -q ^ii; then find /usr/lib -name 'libodbc*.so*' -exec cp -P {} "$ODBC/" \; 2>/dev/null || true find /usr/lib -name 'libodbcinst*.so*' -exec cp -P {} "$ODBC/" \; 2>/dev/null || true fi fi dpkg-deb -x msodbcsql18.deb msodbcsql find msodbcsql -name '*.so*' -exec cp -P {} "$ODBC/" \; cd "$ROOT" rm -rf "$TMP" echo " Bibliotecas ODBC en $ODBC" else echo " ODBC ya existe" fi echo "Listo: $BUNDLED"