49 lines
1.7 KiB
Bash
Executable file
49 lines
1.7 KiB
Bash
Executable file
#!/bin/sh
|
|
# Enable 'splash' only on UEFI desktop installs, and only if Plymouth is present.
|
|
# Runs before 10update-initramfs, so we only call update-grub here.
|
|
#
|
|
|
|
# Run only on UEFI installs
|
|
[ -d /sys/firmware/efi ] || exit 0
|
|
|
|
# Require plymouth in the target system (otherwise splash is pointless)
|
|
in-target dpkg -s plymouth >/dev/null 2>&1 || exit 0
|
|
|
|
# Heuristic “desktop present?” check — avoid debconf; rely on packages/DM.
|
|
if ! in-target sh -c '
|
|
dpkg -s trisquel-desktop-common >/dev/null 2>&1 ||
|
|
dpkg -s triskel >/dev/null 2>&1 ||
|
|
dpkg -s trisquel-gnome >/dev/null 2>&1 ||
|
|
dpkg -s trisquel-mini >/dev/null 2>&1 ||
|
|
dpkg -s lightdm >/dev/null 2>&1 ||
|
|
dpkg -s gdm3 >/dev/null 2>&1 ||
|
|
dpkg -s sddm >/dev/null 2>&1
|
|
'; then
|
|
# No desktop, then do nothing
|
|
exit 0
|
|
fi
|
|
|
|
CFG=/target/etc/default/grub
|
|
[ -f "$CFG" ] || exit 0
|
|
|
|
# If the key is missing entirely, create it with just "splash"
|
|
grep -q '^GRUB_CMDLINE_LINUX_DEFAULT=' "$CFG" \
|
|
|| echo 'GRUB_CMDLINE_LINUX_DEFAULT="splash"' >> "$CFG"
|
|
|
|
# Normalize trivial cases:
|
|
# - empty quotes > "splash"
|
|
# - unquoted value > quote it
|
|
sed -i -r \
|
|
-e 's/^GRUB_CMDLINE_LINUX_DEFAULT=""$/GRUB_CMDLINE_LINUX_DEFAULT="splash"/' \
|
|
-e 's/^(GRUB_CMDLINE_LINUX_DEFAULT)=([^"].*)$/\1="\2"/' \
|
|
"$CFG"
|
|
|
|
# If 'splash' is already present, leave as-is; otherwise append it
|
|
grep -q '^GRUB_CMDLINE_LINUX_DEFAULT=.*\bsplash\b' "$CFG" || \
|
|
sed -i -r 's/^(GRUB_CMDLINE_LINUX_DEFAULT="[^"]*)"/\1 splash"/' "$CFG"
|
|
|
|
# Regenerate grub.cfg; never fail finish-install
|
|
in-target update-grub >/dev/null 2>&1 || true
|
|
|
|
# Always succeed so remaining finish-install hooks run
|
|
exit 0
|