V8.00.000.2025.06.17
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 1m57s

Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
This commit is contained in:
2025-10-21 21:09:12 +01:00
parent 5824d6367f
commit 74f18a2dd5
3 changed files with 97 additions and 0 deletions

View File

@@ -37,6 +37,8 @@ final_commands() {
updatedb | tee -a ${var_logfile}
"
ciss_enforce_multi_user_target
rm -f "${var_target}/root/ciss_xdg_tmp.sh"
guard_dir && return 0
@@ -44,4 +46,84 @@ final_commands() {
### Prevents accidental 'unset -f'.
# shellcheck disable=SC2034
readonly -f final_commands
#######################################
# description
# Arguments:
# None
# Returns:
# 0 ...
#######################################
ciss_enforce_multi_user_target() {
### Declare Arrays, HashMaps, and Variables.
declare -a ary_dm_units=()
declare var_target="${TARGET}"
### Check for TARGET / RECOVERY.
[[ "${VAR_RUN_RECOVERY}" == "true" ]] && var_target="${RECOVERY}"
declare var_dm="" var_unit_dir="" var_link="${var_target}/etc/systemd/system/default.target"
### Determine the canonical systemd unit dir inside TARGET.
if [[ -d "${TARGET}/lib/systemd/system" ]]; then
var_unit_dir="${TARGET}/lib/systemd/system"
elif [[ -d "${TARGET}/usr/lib/systemd/system" ]]; then
var_unit_dir="${TARGET}/usr/lib/systemd/system"
fi
### Enforce 'default.target' -> 'multi-user.target' as a symlink.
if [[ -e "${var_link}" ]] && [[ ! -L "${var_link}" ]]; then
### A regular file here is wrong; we remove it to avoid vendor fallback to graphical.
rm -f -- "${var_link}"
fi
if [[ ! -L "${var_link}" ]]; then
ln -s "${var_unit_dir}/multi-user.target" "${var_link}"
else
### Ensure it points to multi-user.
# shellcheck disable=SC2312
if [[ "$(readlink -f "${var_link}")" != "${var_unit_dir}/multi-user.target" ]]; then
rm -f -- "${var_link}"
ln -s "${var_unit_dir}/multi-user.target" "${var_link}"
fi
fi
### Hard-block any display manager (mask via /dev/null symlink). Include common DMs, and the generic alias:
ary_dm_units=(
"display-manager.service"
"gdm.service" "gdm3.service"
"sddm.service"
"lightdm.service"
"xdm.service"
"lxdm.service"
"slim.service"
)
for var_dm in "${ary_dm_units[@]}"; do
if [[ ! -L "${TARGET}/etc/systemd/system/${var_dm}" ]]; then
ln -s /dev/null "${TARGET}/etc/systemd/system/${var_dm}"
fi
done
return 0
}
### Prevents accidental 'unset -f'.
# shellcheck disable=SC2034
readonly -f ciss_enforce_multi_user_target
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh