#!/bin/bash
#author:Cristiano Siqueira
#descricao:Atualiza o Postgres para uma versão mais recente.
#Revisao:

fim(){
echo " "
echo " "
echo "╔═════════════════════╗"
echo "║         FIM         ║"
echo "╚═════════════════════╝"
exit
}

versao=$(lsb_release -r -s)
user=`whoami`
if [[ $user == "root" ]]; then

    echo "╔══════════════════POSTGRESQL═════════════════╗"
    echo "║            Sim (1)       Não (2)            ║"
    echo "╚═════════════════════════════════════════════╝"
    read -p "Deseja instalar o Postgresql 13?: " installpdvpostgres

    if [[ $installpdvpostgres == 1 ]];then

        if [[ -e /etc/postgresql/10/main/ ]];then
            echo "Postresql 10 está instalado!!"
            echo " "
            echo "Deseja desinstalar o Postgresql 10?"
            echo " "
            echo "╔════════════════════PERIGO══════════════════════╗"
            echo "║ OBS: Todas as bases serão exluidas no processo!║"
            echo "╚════════════════════════════════════════════════╝"
            echo "╔═════════════════════════════════════════════╗"
            echo "║            Sim (1)       Não (2)            ║"
            echo "╚═════════════════════════════════════════════╝"
            read -p "R: " unstall10
            if [[ $unstall10 == 1 ]];then
                echo "Removendo versão antiga e instalando versão nova!"
                sleep 3
                sudo apt --purge remove postgresql-10 -y
            elif [[ $unstall10 == 2 ]];then
                echo "Processo Cancelado!"
                sleep 3
                fim
            else
                echo "Digitou opção errada!"
                echo "Reinicie a atualização, se necessário."
                sleep 3
                fim
            fi
        fi
        if [[ -e /etc/postgresql/13/main/ ]];then
            echo "Postresql 13 instalado!"
            sleep 3
        else
            echo "╔═════════════════════════╗"
            echo "║Instalando Postgresql 13!║"
            echo "╚═════════════════════════╝"
            sleep 3
            if [[ $versao < "20.04" ]];then
                sudo sh -c 'echo "deb https://apt-archive.postgresql.org/pub/repos/apt bionic-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
            elif [[ $versao -le "20.04" ]];then
                sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
            fi
            wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
            sudo apt-get update
            sudo apt-get -y install postgresql-13 postgresql-client-13
        fi
        if [[ -e /etc/postgresql/15/main/ ]];then
            echo "╔════════════════════════╗"
            echo "║Removendo Postgresql 15!║"
            echo "╚════════════════════════╝"
            sleep 3
            sudo apt --purge remove postgresql-15 -y
        fi
    elif [[ $installpdvpostgres == 2 ]];then
        echo "Processo cancelado!"
        sleep 3
        fim
    else
        echo "Digitou opção errada!"
        echo "Reinicie a atualização, se necessário."
        sleep 3
        fim
    fi

	if [[ $installpdvpostgres == 1 ]];then

        echo "Configuração do postgres alterado para utilização do SigFrente"
        cd /etc/postgresql/13/main/
        sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '*'/g" postgresql.conf
        sed -i "s/porta = 5433/porta = 5432/g" postgresql.conf
        sed -i "s/127.0.0.1\/32/0.0.0.0\/0/g" pg_hba.conf
        sed -i "s/md5/trust/g" pg_hba.conf
        sed -i "s/peer/trust/g" pg_hba.conf
        sed -i "s/host    replication     all             0.0.0.0\/0/#host    replication     all             0.0.0.0\/0/g" pg_hba.conf
        sed -i "s/host    replication     all             ::1\/128/#host    replication     all             ::1\/128/g" pg_hba.conf
        sed -i -e "s/local   all             postgres                                trust/local   all             postgres                                trust\nlocal   all             openerp                                 trust/g" pg_hba.conf

        #psql -c "ALTER USER postgres WITH PASSWORD ''" -d template1

        /etc/init.d/postgresql stop
        /etc/init.d/postgresql start
        /etc/init.d/postgresql reload
        /etc/init.d/postgresql restart

    fi
fim
else
    clear
    echo " "
    echo " "
    echo "╔══════════════════════════════════════════════════╗"
    echo "║Execute este aplicatvo em usuário Root, por favor.║"
    echo "╚══════════════════════════════════════════════════╝"
    exit
fi
