#!/bin/bash
# Script para instalar Microsoft ODBC Driver for SQL Server no Linux

echo "=========================================="
echo "  Instalando Microsoft ODBC Driver"
echo "  para SQL Server no Linux"
echo "=========================================="
echo ""

# Verificar se está sendo executado como root
if [ "$EUID" -ne 0 ]; then
    echo "Por favor, execute como root ou use sudo"
    exit 1
fi

# Detectar distribuição Linux
if [ -f /etc/os-release ]; then
    . /etc/os-release
    OS=$ID
    VERSION=$VERSION_ID
else
    echo "Não foi possível detectar a distribuição Linux"
    exit 1
fi

echo "Sistema detectado: $OS $VERSION"
echo ""

case $OS in
    ubuntu|debian)
        echo "Instalando no Ubuntu/Debian..."

        # Instalar dependências
        echo "Instalando dependências..."
        apt update
        apt install -y curl gnupg unixodbc-dev

        # Adicionar repositório Microsoft
        echo "Adicionando repositório Microsoft..."
        curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
        curl https://packages.microsoft.com/config/ubuntu/$VERSION/prod.list > /etc/apt/sources.list.d/mssql-release.list

        # Atualizar e instalar driver ODBC
        echo "Instalando ODBC Driver..."
        apt update
        ACCEPT_EULA=Y apt install -y msodbcsql18

        # Instalar ferramentas ODBC
        echo "Instalando ferramentas ODBC..."
        ACCEPT_EULA=Y apt install -y mssql-tools18
        echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc

        # Instalar driver PHP SQL Server
        echo "Instalando driver PHP para SQL Server..."
        apt install -y php php-odbc php-pdo php-cli

        # Instalar php-sqlsrv
        if [ ! -z "$VERSION" ] && [ "$VERSION" \< "22.04" ]; then
            # Para versões antigas do Ubuntu
            ACCEPT_EULA=Y apt install -y php-sqlsrv php-pdo-sqlsrv
        else
            # Para Ubuntu 22.04+
            pecl install sqlsrv
            pecl install pdo_sqlsrv
            echo "extension=sqlsrv" >> /etc/php/*/mods-available/sqlsrv.ini
            echo "extension=pdo_sqlsrv" >> /etc/php/*/mods-available/pdo_sqlsrv.ini
            phpenmod sqlsrv pdo_sqlsrv
        fi

        echo "Instalação concluída!"
        ;;

    rhel|centos|fedora)
        echo "Instalando no RHEL/CentOS/Fedora..."

        # Instalar dependências
        yum install -y curl unixODBC-devel

        # Adicionar repositório Microsoft
        curl https://packages.microsoft.com/config/rhel/9/prod.repo > /etc/yum.repos.d/mssql-release.repo

        # Instalar driver ODBC
        ACCEPT_EULA=Y yum install -y msodbcsql18

        # Instalar ferramentas
        ACCEPT_EULA=Y yum install -y mssql-tools18
        echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc

        echo "Instalação concluída!"
        ;;

    *)
        echo "Sistema $OS não suportado por este script"
        echo "Visite: https://learn.microsoft.com/pt-br/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server"
        exit 1
        ;;
esac

echo ""
echo "=========================================="
echo "  Testando conexão..."
echo "=========================================="
echo ""

# Reiniciar Apache se instalado
if command -v apache2 &> /dev/null; then
    echo "Reiniciando Apache..."
    systemctl restart apache2
fi

# Reiniciar PHP-FPM se instalado
if command -v php-fpm &> /dev/null; then
    echo "Reiniciando PHP-FPM..."
    systemctl restart php-fpm
fi

echo ""
echo "=========================================="
echo "  Instalação concluída!"
echo "=========================================="
echo ""
echo "Para testar a conexão:"
echo "  php -r \"var_dump(function_exists('sqlsrv_connect'));\""
echo ""
echo "Se mostrar bool(true), o driver está instalado corretamente."
echo ""
