V8.00.000.2025.06.17

Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
This commit is contained in:
2025-08-08 09:55:15 +02:00
parent 0657155d20
commit 7e1345c7ec
3 changed files with 60 additions and 24 deletions

View File

@@ -15,9 +15,6 @@
guard_sourcing
### Variable to finish GRUB CMDLINE strings.
declare -grx VAR_H='"'
#######################################
# Helper module to extract the current GRUB CMDLINE strings.
# Globals:
@@ -52,30 +49,43 @@ old_grub_extract_current_string() {
# VV_GRUB_CMDLINE_LINUX_DEFAULT
# Arguments:
# None
# Returns:
# 0: on success
#######################################
grub_extract_current_string() {
### Declare Arrays, HashMaps, and Variables.
declare -gx VAR_ORIG_GRUB_CMDLINE_LINUX="" VAR_ORIG_GRUB_CMDLINE_LINUX_DEFAULT="" \
VK_GRUB_CMDLINE_LINUX='' VK_GRUB_CMDLINE_LINUX_DEFAULT='' \
VV_GRUB_CMDLINE_LINUX="" VV_GRUB_CMDLINE_LINUX_DEFAULT=""
VK_GRUB_CMDLINE_LINUX='' VK_GRUB_CMDLINE_LINUX_DEFAULT='' \
VV_GRUB_CMDLINE_LINUX="" VV_GRUB_CMDLINE_LINUX_DEFAULT=""
declare vv_raw_lin="" vv_raw_lin_def=""
### Original lines (retained, strictly anchored).
VAR_ORIG_GRUB_CMDLINE_LINUX=$(grep -E '^GRUB_CMDLINE_LINUX=' "${TARGET}/etc/default/grub")
VAR_ORIG_GRUB_CMDLINE_LINUX_DEFAULT=$(grep -E '^GRUB_CMDLINE_LINUX_DEFAULT=' "${TARGET}/etc/default/grub")
# TODO REMOVE DEBUG LOGGER
do_log "debug" "file_only" "1081() Value of VAR_ORIG_GRUB_CMDLINE_LINUX: [${VAR_ORIG_GRUB_CMDLINE_LINUX}]."
do_log "debug" "file_only" "1081() Value of VAR_ORIG_GRUB_CMDLINE_LINUX_DEFAULT: [${VAR_ORIG_GRUB_CMDLINE_LINUX_DEFAULT}]."
# TODO REMOVE DEBUG LOGGER
### Keys (fixed prefixes).
VK_GRUB_CMDLINE_LINUX='GRUB_CMDLINE_LINUX='
VK_GRUB_CMDLINE_LINUX_DEFAULT='GRUB_CMDLINE_LINUX_DEFAULT='
# TODO REMOVE DEBUG LOGGER
do_log "debug" "file_only" "1081() Value of VK_GRUB_CMDLINE_LINUX: [${VK_GRUB_CMDLINE_LINUX}]."
do_log "debug" "file_only" "1081() Value of VK_GRUB_CMDLINE_LINUX_DEFAULT: [${VK_GRUB_CMDLINE_LINUX_DEFAULT}]."
# TODO REMOVE DEBUG LOGGER
### Raw values (with quotes if necessary).
# shellcheck disable=SC2295
vv_raw_lin="${VAR_ORIG_GRUB_CMDLINE_LINUX#${VK_GRUB_CMDLINE_LINUX}}"
# shellcheck disable=SC2295
vv_raw_lin_def="${VAR_ORIG_GRUB_CMDLINE_LINUX_DEFAULT#${VK_GRUB_CMDLINE_LINUX_DEFAULT}}"
# TODO REMOVE DEBUG LOGGER
do_log "debug" "file_only" "1081() Value of vv_raw_lin: [${vv_raw_lin}]."
do_log "debug" "file_only" "1081() Value of vv_raw_lin_def: [${vv_raw_lin_def}]."
# TODO REMOVE DEBUG LOGGER
### Remove outer quotes symmetrically.
if [[ -n ${vv_raw_lin} ]]; then
@@ -114,8 +124,6 @@ grub_extract_current_string() {
VV_GRUB_CMDLINE_LINUX="${vv_raw_lin}"
# shellcheck disable=SC2034
VV_GRUB_CMDLINE_LINUX_DEFAULT="${vv_raw_lin_def}"
return 0
}
#######################################
@@ -130,8 +138,6 @@ grub_extract_current_string() {
# VV_GRUB_CMDLINE_LINUX_DEFAULT
# Arguments:
# None
# Returns:
# 0 ...
#######################################
grub_finalize_string() {
### Declare Arrays, HashMaps, and Variables.
@@ -141,6 +147,12 @@ grub_finalize_string() {
declare var_new_lin_def="${VK_GRUB_CMDLINE_LINUX_DEFAULT}'${VV_GRUB_CMDLINE_LINUX_DEFAULT}'"
declare -i var_found_lin=0 var_found_lin_def=0 var_line=0 i=0
# TODO REMOVE DEBUG LOGGER
do_log "debug" "file_only" "1081() var_new_lin [${var_new_lin}]."
do_log "debug" "file_only" "1081() var_new_lin [${var_new_lin_def}]."
do_log "debug" "file_only" "1081() Before [mapfile -t ary_lines < ${var_file}]."
# TODO REMOVE DEBUG LOGGER
mapfile -t ary_lines < "${var_file}"
### Replace lines strictly based on the key (including '=').
@@ -148,6 +160,10 @@ grub_finalize_string() {
var_line=${ary_lines[i]}
# TODO REMOVE DEBUG LOGGER
do_log "debug" "file_only" "1081() [Line '${i}': ${var_line}]."
# TODO REMOVE DEBUG LOGGER
case "${var_line}" in
"${VK_GRUB_CMDLINE_LINUX}"*)
@@ -181,7 +197,10 @@ grub_finalize_string() {
declare -gx VAR_GRUB_CMDLINE_LINUX="${var_new_lin}"
declare -gx VAR_GRUB_CMDLINE_LINUX_DEFAULT="${var_new_lin_def}"
return 0
# TODO REMOVE DEBUG LOGGER
do_log "debug" "file_only" "1081() VAR_GRUB_CMDLINE_LINUX [${VAR_GRUB_CMDLINE_LINUX}]."
do_log "debug" "file_only" "1081() VAR_GRUB_CMDLINE_LINUX_DEFAULT [${VAR_GRUB_CMDLINE_LINUX_DEFAULT}]."
# TODO REMOVE DEBUG LOGGER
}