This commit is contained in:
maxdrk
2026-03-25 00:05:49 +01:00
committed by GitHub
parent d6ed0b1cbd
commit 0c774b3169

38
main.sh
View File

@@ -38,36 +38,36 @@ if [ "$EUID" -ne 0 ]; then
exit 1 exit 1
fi fi
print_step "🚀 Lancement du programme de configuration IoT" print_step " Lancement du programme de configuration IoT"
sleep 1 sleep 1
# ---------------------------- # ----------------------------
# 1. Mise à jour du système # 1. Mise à jour du système
# ---------------------------- # ----------------------------
print_step "🔄 Mise à jour du système (apt update & upgrade)" print_step " Mise à jour du système (apt update & upgrade)"
if ! apt update && apt upgrade -y; then if ! apt update && apt upgrade -y; then
echo "❌ Erreur lors de la mise à jour du système" echo "❌ Erreur lors de la mise à jour du système"
exit 1 exit 1
fi fi
echo " Système mis à jour" echo " Système mis à jour"
sleep 1 sleep 1
# ---------------------------- # ----------------------------
# 2. Installation de Python # 2. Installation de Python
# ---------------------------- # ----------------------------
print_step "🐍 Vérification / Installation de Python3" print_step " Vérification / Installation de Python3"
if ! apt install python3 python3-pip python3-venv -y; then if ! apt install python3 python3-pip python3-venv -y; then
echo "❌ Erreur lors de l'installation de Python3" echo "❌ Erreur lors de l'installation de Python3"
exit 1 exit 1
fi fi
PYTHON_VERSION=$(python3 --version 2>&1) PYTHON_VERSION=$(python3 --version 2>&1)
echo " $PYTHON_VERSION installé" echo " $PYTHON_VERSION installé"
sleep 1 sleep 1
# ---------------------------- # ----------------------------
# 3. Recherche des venvs existants # 3. Recherche des venvs existants
# ---------------------------- # ----------------------------
print_step "🔍 Recherche des environnements virtuels (venv) existants..." print_step " Recherche des environnements virtuels (venv) existants..."
SEARCH_DIRS=("$(pwd)") SEARCH_DIRS=("$(pwd)")
VENV_LIST=() VENV_LIST=()
@@ -86,9 +86,9 @@ done
echo "" echo ""
if [ ${#VENV_LIST[@]} -eq 0 ]; then if [ ${#VENV_LIST[@]} -eq 0 ]; then
echo " Aucun environnement virtuel trouvé dans : $(pwd)" echo " Aucun environnement virtuel trouvé dans : $(pwd)"
else else
echo " ${#VENV_LIST[@]} environnement(s) virtuel(s) trouvé(s) :" echo " ${#VENV_LIST[@]} environnement(s) virtuel(s) trouvé(s) :"
for i in "${!VENV_LIST[@]}"; do for i in "${!VENV_LIST[@]}"; do
venv="${VENV_LIST[$i]}" venv="${VENV_LIST[$i]}"
python_ver=$("$venv/bin/python" --version 2>&1) python_ver=$("$venv/bin/python" --version 2>&1)
@@ -97,8 +97,6 @@ else
echo " Python : $python_ver" echo " Python : $python_ver"
echo " ▶ Activer : source $venv/bin/activate" echo " ▶ Activer : source $venv/bin/activate"
done done
# On retient le premier venv trouvé et on écrit son chemin
SELECTED_VENV="${VENV_LIST[0]}" SELECTED_VENV="${VENV_LIST[0]}"
echo "$SELECTED_VENV" > ./.venv_path echo "$SELECTED_VENV" > ./.venv_path
echo "" echo ""
@@ -116,43 +114,43 @@ if [[ "$CREATE_VENV" =~ ^[oO]$ ]]; then
VENV_PATH="$SEARCH_DIRS/venv" VENV_PATH="$SEARCH_DIRS/venv"
if python3 -m venv $SEARCH_DIRS/venv; then if python3 -m venv $SEARCH_DIRS/venv; then
echo "" echo ""
echo " Venv créé avec succès !" echo " Venv créé avec succès !"
echo " Chemin : $VENV_PATH" echo " Chemin : $VENV_PATH"
echo " ▶ Activer : source $VENV_PATH/bin/activate" echo " ▶ Activer : source $VENV_PATH/bin/activate"
echo "$VENV_PATH" > ./.venv_path echo "$VENV_PATH" > ./.venv_path
echo "📝 Chemin enregistré dans .venv_path" echo " Chemin enregistré dans .venv_path"
# Mise à jour de pip dans le venv # Mise à jour de pip dans le venv
"$VENV_PATH/bin/pip" install --upgrade pip "$VENV_PATH/bin/pip" install --upgrade pip
# Installation des dépendances si requirements.txt présent # Installation des dépendances si requirements.txt présent
if [ -f "./requirements.txt" ]; then if [ -f "./requirements.txt" ]; then
echo "📦 Installation des dépendances depuis requirements.txt..." echo " Installation des dépendances depuis requirements.txt..."
"$VENV_PATH/bin/pip" install -r ./requirements.txt "$VENV_PATH/bin/pip" install -r ./requirements.txt
echo " Dépendances installées" echo " Dépendances installées"
else else
echo " Aucun requirements.txt trouvé, installation des dépendances ignorée" echo " Aucun requirements.txt trouvé, installation des dépendances ignorée"
fi fi
else else
echo " Erreur lors de la création du venv à : $VENV_PATH" echo " Erreur lors de la création du venv à : $VENV_PATH"
exit 1 exit 1
fi fi
else else
echo " Création ignorée" echo " Création ignorée"
fi fi
# ---------------------------- # ----------------------------
# Fin # Fin
# ---------------------------- # ----------------------------
print_step "🎉 Configuration terminée" print_step " Configuration terminée"
echo "" echo ""
if [ -f "./.venv_path" ]; then if [ -f "./.venv_path" ]; then
echo " Venv configuré : $(cat ./.venv_path)" echo " Venv configuré : $(cat ./.venv_path)"
echo " Pour l'activer manuellement : source $(cat ./.venv_path)/bin/activate" echo " Pour l'activer manuellement : source $(cat ./.venv_path)/bin/activate"
else else
echo " Aucun venv enregistré — relancez le script et créez un venv" echo " Aucun venv enregistré — relancez le script et créez un venv"
fi fi
echo "" echo ""