67 lines
1.9 KiB
Bash
Executable file
67 lines
1.9 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.
|
|
#
|
|
|
|
set -e
|
|
|
|
# UEFI only in installer env
|
|
[ -d /sys/firmware/efi ] || exit 0
|
|
|
|
# Desktop detection (target): Trisquel desktop metas OR common DMs
|
|
if in-target dpkg -s trisquel-desktop-common >/dev/null 2>&1 \
|
|
|| in-target dpkg -s triskel >/dev/null 2>&1 \
|
|
|| in-target dpkg -s trisquel-gnome >/dev/null 2>&1 \
|
|
|| in-target dpkg -s trisquel-mini >/dev/null 2>&1 \
|
|
|| in-target dpkg -s lightdm >/dev/null 2>&1 \
|
|
|| in-target dpkg -s gdm3 >/dev/null 2>&1 \
|
|
|| in-target dpkg -s sddm >/dev/null 2>&1; then
|
|
logger -t trisquel-uefi-splash "desktop detected (packages)"
|
|
else
|
|
logger -t trisquel-uefi-splash "no desktop; skip"
|
|
exit 0
|
|
fi
|
|
|
|
# Plymouth present in target?
|
|
in-target dpkg -s plymouth >/dev/null 2>&1 || { logger -t trisquel-uefi-splash "no plymouth; skip"; exit 0; }
|
|
|
|
# Edit /etc/default/grub inside target: ensure GRUB_CMDLINE_LINUX_DEFAULT includes 'splash'
|
|
in-target sh -s <<'INCHROOT'
|
|
set -e
|
|
CFG="/etc/default/grub"
|
|
[ -f "$CFG" ] || touch "$CFG"
|
|
|
|
awk -v key="GRUB_CMDLINE_LINUX_DEFAULT" '
|
|
BEGIN{done=0}
|
|
# Match the variable (with or without quotes around value)
|
|
($0 ~ "^"key"=") {
|
|
line = $0
|
|
val = $0
|
|
sub("^"key"=","",val)
|
|
# strip surrounding double quotes if present
|
|
if (val ~ /^"/) sub(/^"/,"",val)
|
|
if (val ~ /"$/) sub(/"$/,"",val)
|
|
# normalize trailing spaces
|
|
gsub(/[[:space:]]+$/, "", val)
|
|
# check presence of splash
|
|
found=0
|
|
n=split(val, tok, /[[:space:]]+/)
|
|
for (i=1;i<=n;i++) if (tok[i]=="splash") { found=1; break }
|
|
if (!found) {
|
|
if (val == "") val = "quiet splash"; else val = val " splash"
|
|
}
|
|
print key "=\"" val "\""
|
|
done=1
|
|
next
|
|
}
|
|
{ print }
|
|
END{
|
|
if (!done) print key "=\"quiet splash\""
|
|
}
|
|
' "$CFG" > "$CFG.tmp" && mv "$CFG.tmp" "$CFG"
|
|
|
|
update-grub || true
|
|
INCHROOT
|
|
|
|
logger -t trisquel-uefi-splash "splash ensured; update-grub called"
|
|
exit 0
|