59 lines
1.6 KiB
Bash
Executable File
59 lines
1.6 KiB
Bash
Executable File
#!/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"
|