#!/bin/bash
#
#
#┌────────────────────────────────────────────────────────────────────────────────┐
#│                             Instalación de Sestools                            │
#│                             Versión script bash 1.0                            │
#│                 @author Fernando Bello M <fbello04@hotmail.com>                │
#└────────────────────────────────────────────────────────────────────────────────┘
#
# Archivo: install_sestools
#
#

ddns=${1:-"ferrumoficina.dyndns.com"}
# Definir la URL del repositorio
URL="https://repos.sesinnovation.net"
# Carpeta de destino para la descarga
DOWNLOAD_DIR="/tmp"
PACKAGE="curl nano unzip sshpass lsof cron net-tools sqlite3"



opensuse(){
    if zypper repos | grep -q "foxfher"; then
       sudo zypper removerepo foxfher
    fi
    echo ":: Verifca la última versión de sestools."
    download_and_install $URL "sestools" false true
    if  [[ -f "$DOWNLOAD_DIR/sestools" ]]; then
        PACKAGE_VERSION=$(<"$DOWNLOAD_DIR/sestools")
        # Reemplazar guiones por guiones bajos en la versión del paquete
        PACKAGE_VERSION="sestools-$(echo "$PACKAGE_VERSION" | sed 's/-/_/g')-1.x86_64.rpm"
        rm "$DOWNLOAD_DIR/sestools"
        #echo $PACKAGE_VERSION
        # Definir la URL del repositorio
        URL="$URL/opensuse/Packages"
        echo ":: Paquetes necesarios para sestools"
        sudo zypper install -y $PACKAGE
        # Descargar e instalar un paquete específico
        download_and_install "$URL" "bat-musl-0.23.0-1.x86_64.rpm"
        # Descargar e instalar un paquete con una versión específica
        download_and_install "$URL" "$PACKAGE_VERSION"
    fi
}

# Función para descargar e instalar un paquete desde el repositorio
# Uso: download_and_install REPO_URL PACKAGE_NAME [INSTALL]
download_and_install() {
    local REPO_URL="$1"
    local PACKAGE_NAME="$2"
    local INSTALL="${3:-true}"  # Valor predeterminado es 'true'
    local QUIET="${4:-false}"  # Valor predeterminado es 'true'

    # Descargar el paquete desde el repositorio a la carpeta temporal
    wget -q --no-check-certificate -P "$DOWNLOAD_DIR" "$REPO_URL/$PACKAGE_NAME"

    # Verificar si la descarga fue exitosa
    if [ $? -eq 0 ]; then

        if [ "$QUIET" == "false" ]; then
            echo ":: Descarga del paquete $PACKAGE_NAME exitosa."
        fi

        # Instalar el paquete si INSTALL es 'true'
        if [ "$INSTALL" == "true" ]; then
            echo ":: Instalando paquete $PACKAGE_NAME"
            sudo zypper --no-gpg-checks install -y  "$DOWNLOAD_DIR/$PACKAGE_NAME"

            # Verificar si la instalación fue exitosa
            if [ $? -eq 0 ]; then
                echo ":: Instalación del paquete $PACKAGE_NAME exitosa."
            else
                echo "Error: No se pudo instalar el paquete $PACKAGE_NAME."
            fi
            rm "$DOWNLOAD_DIR/$PACKAGE_NAME"
        fi
    else
        echo "Error: No se pudo descargar el paquete $PACKAGE_NAME desde $REPO_URL."
    fi
}





if cat /proc/version | grep -q SUSE; then
   opensuse
else
 if [ ! -f "/etc/apt/sources.list.d/foxfher-repo.list" ]; then
       echo ":: Añadiendo repositorio"
       sudo echo "deb [trusted=yes] https://repos.sesinnovation.net/debian/ ./" | sudo tee -a /etc/apt/sources.list.d/foxfher-repo.list  >/dev/null
 fi
 sudo apt update
 sudo apt install sestools -y
fi

if [[ ! -f "/usr/local/bin/sestools" ]]; then
    echo "Error: No se Instaló sestools, reportar al administrador"
else
    if [[  "$ddns" != "c" ]]; then
      /usr/local/bin/sestools postinstall --cluster FerrumOp  --token 7177754812:AAEds505L-H73lXstUOXXzSwIV1SGEBkM_A --chat_id -4187710320 --ddns $ddns
    fi
fi



