#!/bin/bash

# Actualizar repositorios
echo "Actualizando repositorios..."
apt-get update

# Instalar compiladores y herramientas necesarias
echo "Instalando gcc, make y otras dependencias..."
apt-get install -y gcc make build-essential linux-headers-$(uname -r) python3-dev

# Instalar Python 3, pip y virtualenv
echo "Instalando Python 3, pip y virtualenv..."
apt-get install -y python3 python3-pip python3-venv

# Crear alias para 'python' si no existe
if ! command -v python &> /dev/null; then
    echo "Creando alias para 'python'..."
    ln -s /usr/bin/python3 /usr/bin/python
fi

# Actualizar pip a la última versión globalmente
echo "Actualizando pip globalmente..."
python3 -m pip install --upgrade pip

# Instalar wheel para facilitar la instalación de paquetes compilados
echo "Instalando wheel globalmente..."
python3 -m pip install wheel

# Instalar Jupyter y psutil globalmente
echo "Instalando Jupyter Notebook y psutil globalmente..."
python3 -m pip install jupyter psutil

# Crear un perfil de configuración por defecto para Jupyter
echo "Creando configuración por defecto para Jupyter..."
jupyter notebook --generate-config

# Añadir configuración para ejecutar Jupyter sin token en localhost
CONFIG_FILE=$(jupyter --config-dir)/jupyter_notebook_config.py
echo "c.NotebookApp.ip = '0.0.0.0'" >> $CONFIG_FILE
echo "c.NotebookApp.open_browser = False" >> $CONFIG_FILE
echo "c.NotebookApp.token = ''" >> $CONFIG_FILE
echo "Configuración creada en $CONFIG_FILE"

# Verificar la instalación
echo "Verificando la instalación..."
jupyter --version

echo "Instalación completada exitosamente."
echo "Para iniciar Jupyter, ejecuta: jupyter notebook --allow-root"
