Files
InnotexBootloarder/install.sh

142 lines
4.5 KiB
Bash
Executable File

#!/bin/bash
set -e
########################################
# Vérification des privilèges root
########################################
if [ "$EUID" -ne 0 ]; then
echo "Erreur : ce script doit être exécuté en tant que root."
exit 1
fi
########################################
# Configuration
########################################
PLYMOUTH_DIR="/usr/share/plymouth/themes"
PLYMOUTH_THEME="InnotexBootloarder"
THEME_DIR="InnotexBootloarder"
THEME_IMAGE="$THEME_DIR/InnotexBootloarder.png"
BGRTLEFT=0
BGRTTOP=100
########################################
# Détection du gestionnaire de paquets
########################################
if command -v apt-get >/dev/null 2>&1; then
PKG_INSTALL="apt-get install -y"
PKG_UPDATE="apt-get update"
elif command -v dnf >/dev/null 2>&1; then
PKG_INSTALL="dnf install -y"
PKG_UPDATE="dnf makecache"
elif command -v pacman >/dev/null 2>&1; then
PKG_INSTALL="pacman -Sy --noconfirm"
PKG_UPDATE="pacman -Sy"
else
echo "Gestionnaire de paquets non supporté."
exit 1
fi
########################################
# Installation de Plymouth si nécessaire
########################################
if ! command -v plymouthd >/dev/null 2>&1; then
echo "Installation de Plymouth..."
$PKG_UPDATE
$PKG_INSTALL plymouth plymouth-themes
fi
########################################
# Vérification des dépendances
########################################
for cmd in convert install awk; do
if ! command -v "$cmd" >/dev/null 2>&1; then
echo "Installation des dépendances manquantes..."
$PKG_UPDATE
$PKG_INSTALL imagemagick coreutils gawk
break
fi
done
########################################
# Vérification des fichiers du thème
########################################
if [[ ! -f "$THEME_IMAGE" ]]; then
echo "Erreur : image du thème introuvable : $THEME_IMAGE"
exit 1
fi
########################################
# Génération du script Plymouth
########################################
echo "Génération du script Plymouth..."
awk -v BGRTLEFT="$BGRTLEFT" -v BGRTTOP="$BGRTTOP" \
'{gsub(/\$BGRTLEFT\$/, BGRTLEFT); gsub(/\$BGRTTOP\$/, BGRTTOP); print}' \
< "$THEME_DIR/InnotexBootloarder.script.in" \
> "$THEME_DIR/InnotexBootloarder.script"
########################################
# Installation du thème Plymouth
########################################
echo "Installation du thème Plymouth..."
install -d "$PLYMOUTH_DIR/$PLYMOUTH_THEME"
install -m 644 "$THEME_DIR/InnotexBootloarder.plymouth" \
"$PLYMOUTH_DIR/$PLYMOUTH_THEME/"
install -m 644 "$THEME_DIR/InnotexBootloarder.script" \
"$THEME_DIR/InnotexBootloarder.png" \
"$PLYMOUTH_DIR/$PLYMOUTH_THEME/"
install -m 644 "$THEME_DIR"/{box,bullet,progress_{bar,box}}.png \
"$PLYMOUTH_DIR/$PLYMOUTH_THEME/"
########################################
# Scripts complémentaires (si présents)
########################################
[ -d /lib/lsb/init-functions.d ] && \
install -m 644 scripts/init-functions \
/lib/lsb/init-functions.d/999-bgrt
[ -d /etc/initramfs-tools/hooks ] && \
install -m 755 scripts/initramfs-hook \
/etc/initramfs-tools/hooks/bgrt-fonts
########################################
# Configuration automatique de GRUB
########################################
if [ -f /etc/default/grub ]; then
echo "Configuration de GRUB..."
CURRENT_CMDLINE=$(grep '^GRUB_CMDLINE_LINUX_DEFAULT=' /etc/default/grub | cut -d'"' -f2)
[[ "$CURRENT_CMDLINE" != *quiet* ]] && CURRENT_CMDLINE="$CURRENT_CMDLINE quiet"
[[ "$CURRENT_CMDLINE" != *splash* ]] && CURRENT_CMDLINE="$CURRENT_CMDLINE splash"
sed -i "s|^GRUB_CMDLINE_LINUX_DEFAULT=.*|GRUB_CMDLINE_LINUX_DEFAULT=\"${CURRENT_CMDLINE}\"|" /etc/default/grub
if command -v update-grub >/dev/null 2>&1; then
update-grub
elif command -v grub-mkconfig >/dev/null 2>&1; then
grub-mkconfig -o /boot/grub/grub.cfg
fi
else
echo "GRUB non détecté, configuration ignorée."
fi
########################################
# Activation du thème + initramfs
########################################
echo "Activation du thème Plymouth..."
plymouth-set-default-theme -R "$PLYMOUTH_THEME"
########################################
# Fin
########################################
echo "======================================"
echo "Installation terminée avec succès."
echo "Thème Plymouth activé : $PLYMOUTH_THEME"
echo "Redémarre la machine pour voir le résultat."
echo "======================================"