142 lines
4.5 KiB
Bash
Executable File
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 "======================================"
|
|
|