prepare: separate actively maintained kernels from EOL ones in prompts (#428)

+ Automatically set the default kernel version to the latest
non-rc kernel

Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
This commit is contained in:
Adel Kara Slimane
2022-02-10 17:57:52 +01:00
committed by GitHub
parent 19caf8d543
commit a12662f66c

View File

@@ -1,7 +1,11 @@
#!/bin/bash
# Needed for prompting with the correct order
_supported_kernels=("5.17" "5.16" "5.15" "5.14" "5.13" "5.12" "5.11" "5.10" "5.9" "5.8" "5.7" "5.4")
# This list includes the currently maintained kernels upstream
# and always ends with an entry that refers to end of life kernel versions
_current_kernels=("5.17" "5.16" "5.15" "5.10" "5.4")
# List of kernels that are no longer maintained upstream
_eol_kernels=("5.14" "5.13" "5.12" "5.11" "5.9" "5.8" "5.7")
typeset -Ag _kver_subver_map
_kver_subver_map=(
@@ -111,16 +115,40 @@ _set_kernel_version() {
if [ -z "$_version" ] || ! [[ "${!_kver_subver_map[*]}" =~ "$_version" ]]; then
msg2 "Which kernel version do you want to install?"
# Create a list of kernels versions with their sub-version added and prompt from it
# Create a list of currently maintained kernels versions with their sub-version added
_kernel_fullver_list=()
for _key in "${_supported_kernels[@]}"; do
for _key in "${_current_kernels[@]}"; do
_kernel_fullver_list+=("${_key}.${_kver_subver_map[$_key]}")
done
# Add the "Another" entry to enable building unmaintained kernel versions
_kernel_fullver_list+=("Another (no longer maintained upstream)")
# Default index corresponds to latest stable kernel
# put default index to "1" when the most recent kernel is an rc one
_default_index="0"
if [[ "${_kver_subver_map[${_current_kernels[0]}]}" == rc* ]]; then
_default_index="1"
fi
#Default index corresponds to latest stable kernel
_default_index="1"
_prompt_from_array "${_kernel_fullver_list[@]}"
_version=${_supported_kernels[$_selected_index]}
if [[ "${_selected_value}" == Another* ]]; then
msg2 "Which EOL kernel version do you want to install?"
_kernel_fullver_list=()
for _key in "${_eol_kernels[@]}"; do
_kernel_fullver_list+=("${_key}.${_kver_subver_map[$_key]}")
done
# Default index corresponds to latest unmaintained kernel
_default_index="0"
_prompt_from_array "${_eol_kernels[@]}"
_version=${_eol_kernels[$_selected_index]}
else
_version=${_current_kernels[$_selected_index]}
fi
fi
# Note: _basekernel and _version variables can be merged