#!/bin/bash
set -e
# set -x

cwd=$(pwd)

# 进入脚本所在目录
SCRIPT_PATH="$(readlink -f "$0")"
script_dir=$(dirname "$SCRIPT_PATH")
cd $script_dir

# 驱动版本，更新时请修改此处
DRIVER_VERSION="6.0.3"

# 目标目录
INSTALL_DIR="/opt/orapis/drivers/opengauss"

# 创建安装目录
sudo mkdir -p $INSTALL_DIR

source /etc/os-release
Driver=""
case "$ID" in
    ubuntu)
        echo "This is Ubuntu"
        sudo cp -rf ./ubuntu22/opengauss/* $INSTALL_DIR/
        sudo chown -R $USER:$USER $INSTALL_DIR
        Driver=${INSTALL_DIR}/lib/psqlodbcw.so
        ;;
    openEuler)
        echo "This is openEuler"
        sudo cp -rf ./openEuler/opengauss/* $INSTALL_DIR/
        sudo chown -R $USER:$USER $INSTALL_DIR
        patchelf --set-rpath "$INSTALL_DIR/lib" $INSTALL_DIR/lib/libpq.so.5
        patchelf --set-rpath "$INSTALL_DIR/lib" $INSTALL_DIR/odbc/lib/psqlodbcw.so
        Driver=${INSTALL_DIR}/odbc/lib/psqlodbcw.so
        ;;
    *)
        echo "Unknown OS: $ID"
        exit
        ;;
esac



# 卸载旧注册
sudo odbcinst -u -d -n OpenGauss > /dev/null 2>&1

# 创建纯净的驱动注册文件
sudo bash -c "cat > /tmp/opengauss_driver_reg.ini" << EOF
[OpenGauss]
Description=OpenGauss ODBC Driver
Driver=${Driver}
FileUsage=1
EOF

# 写入驱动管理器
sudo odbcinst -i -d -f /tmp/opengauss_driver_reg.ini

# 是否注册成功
odbcinst -q -d

sudo rm -f /tmp/opengauss_driver_reg.ini

# 记录安装信息
mkdir -p $cwd/conf/drivers
echo "{\"version\": \"$DRIVER_VERSION\", \"type\":\"OpenGauss\", \"update_time\": \"$(date +"%Y-%m-%d %H:%M:%S")\"}" > $cwd/conf/drivers/OpenGauss.json
cat $cwd/conf/drivers/OpenGauss.json

# 输出完成信息
echo "OpenGauss Driver installation completed!"

