146 lines
4.5 KiB
Bash
Executable File
146 lines
4.5 KiB
Bash
Executable File
#!/bin/bash
|
||
set -euo pipefail
|
||
|
||
# ==========================================================
|
||
# Debian 13 Toolbox — Menu principal de post-installation
|
||
# ==========================================================
|
||
|
||
|
||
LOGFILE="$HOME/postinstall.log"
|
||
> "$LOGFILE"
|
||
|
||
# --- Fonction d’exécution avec log
|
||
run_step() {
|
||
local description="$1"
|
||
local command="$2"
|
||
|
||
echo -n "$description... "
|
||
if eval "$command" >>"$LOGFILE" 2>&1; then
|
||
echo "✅"
|
||
else
|
||
echo "❌ (voir $LOGFILE)"
|
||
fi
|
||
}
|
||
|
||
# --- Vérification dépendances minimales
|
||
for cmd in whiptail flatpak extrepo wget curl git; do
|
||
if ! command -v "$cmd" &>/dev/null; then
|
||
echo "📦 Installation de la dépendance manquante : $cmd"
|
||
sudo apt update && sudo apt install -y "$cmd"
|
||
fi
|
||
done
|
||
|
||
|
||
# ==========================================================
|
||
# FONCTIONS DE CHAQUE ACTION
|
||
# ==========================================================
|
||
|
||
post_install_base() {
|
||
echo "🚀 Post-installation de base..."
|
||
|
||
run_step "📦 Configuration des sources APT" "
|
||
sudo cp files/debian.sources /etc/apt/sources.list.d/ &&
|
||
if [ -f /etc/apt/sources.list ]; then
|
||
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
|
||
sudo rm /etc/apt/sources.list
|
||
fi
|
||
"
|
||
|
||
run_step "🆙 Mise à jour du système" "
|
||
sudo apt update &&
|
||
sudo apt upgrade -y
|
||
"
|
||
|
||
run_step "🔧 Installation des outils de base" "
|
||
sudo apt install -y libgettextpo-dev gettext git wget curl build-essential linux-image-amd64 make ttf-mscorefonts-installer rsyslog unzip bash-completion flatpak libxdo3 extrepo
|
||
"
|
||
|
||
run_step "🇫🇷 Langue et clavier français" "
|
||
sudo cp files/keyboard /etc/default/
|
||
echo 'LANG=fr_FR.UTF-8' | sudo tee -a /etc/default/locale > /dev/null
|
||
"
|
||
|
||
run_step "🛒 Ajout du dépôt Flathub" "
|
||
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||
"
|
||
|
||
run_step "🌐 DNS Cloudflare" "
|
||
echo -e '[main]\ndns=none' | sudo tee /etc/NetworkManager/conf.d/90-dns-none.conf &&
|
||
sudo systemctl reload NetworkManager &&
|
||
sudo sed -i '1,4 s/^/#/' /etc/resolv.conf &&
|
||
sudo sed -i -e '\$anameserver 1.1.1.2\nameserver 2606:4700:4700::1112' /etc/resolv.conf &&
|
||
sudo systemctl reload NetworkManager
|
||
"
|
||
|
||
run_step "🎨 Icônes LibreOffice (Colibre)" "
|
||
sudo chown $USER:$USER files/registrymodifications.xcu &&
|
||
mkdir -p \$HOME/.config/libreoffice/4/user/ &&
|
||
cp files/registrymodifications.xcu \$HOME/.config/libreoffice/4/user/ &&
|
||
sudo mkdir -p /etc/skel/.config/libreoffice/4/user/ &&
|
||
sudo cp files/registrymodifications.xcu /etc/skel/.config/libreoffice/4/user/
|
||
"
|
||
|
||
run_step "🦊 Installation de Firefox" "
|
||
bash scripts/firefox.sh
|
||
"
|
||
}
|
||
|
||
|
||
configure_gnome() {
|
||
echo "🖥️ Configuration de GNOME..."
|
||
run_step "Configuration de GNOME (script externe)" "
|
||
bash scripts/gnome.sh
|
||
"
|
||
}
|
||
|
||
# --- Fichiers annexes
|
||
source ./scripts/install_apps.sh
|
||
|
||
|
||
install_apps_menu() {
|
||
CHOIX=$(whiptail --title "Installation de logiciels" --checklist \
|
||
"Choisissez les logiciels à installer :" 20 78 10 \
|
||
"freetube" "FreeTube (YouTube sans pub)" ON \
|
||
"zoom" "Zoom (visioconférence)" OFF \
|
||
"element" "Element (messagerie Matrix)" OFF \
|
||
"chrome" "Google Chrome (navigateur)" OFF \
|
||
"vscodium" "VSCodium (éditeur de code)" ON \
|
||
3>&1 1>&2 2>&3)
|
||
|
||
CHOIX=$(echo $CHOIX | tr -d '"')
|
||
|
||
for APP in $CHOIX; do
|
||
case $APP in
|
||
freetube) install_freetube ;;
|
||
zoom) install_zoom ;;
|
||
element) install_element ;;
|
||
chrome) install_chrome ;;
|
||
vscodium) install_vscodium ;;
|
||
*) echo "❓ Logiciel inconnu : $APP" ;;
|
||
esac
|
||
done
|
||
}
|
||
|
||
# ==========================================================
|
||
# MENU PRINCIPAL (BOUCLE)
|
||
# ==========================================================
|
||
while true; do
|
||
CHOIX=$(whiptail --title "🧰 GN-Debian 13 Toolbox" --menu \
|
||
"Sélectionnez une action :" 20 70 10 \
|
||
1 "Post-installation de base" \
|
||
2 "Personnalisation de GNOME" \
|
||
3 "Installer des applications" \
|
||
4 "Quitter" \
|
||
3>&1 1>&2 2>&3)
|
||
|
||
case $CHOIX in
|
||
1) post_install_base ;;
|
||
2) configure_gnome ;;
|
||
3) install_apps_menu ;;
|
||
4) echo "👋 Au revoir !"; exit 0 ;;
|
||
*) echo "❓ Choix invalide." ;;
|
||
esac
|
||
|
||
whiptail --title "Retour au menu principal" --msgbox "✅ Action terminée.\nAppuyez sur OK pour revenir au menu principal." 8 60
|
||
done
|