37 lines
964 B
Bash
Executable File
37 lines
964 B
Bash
Executable File
#!/bin/bash
|
|
set -eux
|
|
|
|
TARGETARCH="${1:-amd64}"
|
|
DUCKDB_VERSION="${2:-v1.5.3.0}"
|
|
|
|
# Determine the correct DuckDB ODBC package for the architecture
|
|
case "$TARGETARCH" in
|
|
amd64) odbc_zip="duckdb_odbc-linux-amd64.zip" ;;
|
|
arm64) odbc_zip="duckdb_odbc-linux-arm64.zip" ;;
|
|
*) echo "Unsupported TARGETARCH: $TARGETARCH" >&2; exit 1 ;;
|
|
esac
|
|
|
|
# Download and install DuckDB ODBC driver
|
|
curl -fsSL -o /tmp/duckdb_odbc.zip "https://github.com/duckdb/duckdb-odbc/releases/download/${DUCKDB_VERSION}/${odbc_zip}"
|
|
mkdir -p /opt/duckdb_odbc
|
|
unzip /tmp/duckdb_odbc.zip -d /opt/duckdb_odbc
|
|
rm /tmp/duckdb_odbc.zip
|
|
|
|
# Configure ODBC driver in odbcinst.ini
|
|
cat >> /etc/odbcinst.ini << EOF
|
|
|
|
[DuckDB]
|
|
Description=DuckDB ODBC Driver
|
|
Driver=/opt/duckdb_odbc/libduckdb_odbc.so
|
|
Setup=/opt/duckdb_odbc/libduckdb_odbc.so
|
|
UsageCount=1
|
|
EOF
|
|
|
|
# Configure default DuckDB data source in odbc.ini
|
|
cat >> /etc/odbc.ini << EOF
|
|
|
|
[DuckDB]
|
|
Driver=DuckDB
|
|
Database=/var/lib/sqlpage/duckdb.db
|
|
EOF
|