sort changed and show only 4 lts versions

This commit is contained in:
Roger Sikorski
2026-06-05 14:22:10 +02:00
parent 940a2faf42
commit 1060a60e4d
+24 -8
View File
@@ -4,13 +4,25 @@ DIR=$(
pwd pwd
) )
mapfile -t LTS_RELEASES < <(curl -s https://changelogs.ubuntu.com/meta-release-lts | grep "^Dist:" | awk '{print $2}') mapfile -t LTS_ENTRIES < <(
curl -s https://changelogs.ubuntu.com/meta-release-lts | awk '
/^Dist:/ { dist=$2 }
/^Version:/ { ver=$2; print dist " " ver }
' | tail -4 | tac
)
if [ ${#LTS_RELEASES[@]} -eq 0 ]; then if [ ${#LTS_ENTRIES[@]} -eq 0 ]; then
echo "Error: Could not fetch LTS release list from Ubuntu" echo "Error: Could not fetch LTS release list from Ubuntu"
exit 1 exit 1
fi fi
LTS_RELEASES=()
LTS_VERSIONS=()
for entry in "${LTS_ENTRIES[@]}"; do
LTS_RELEASES+=("${entry%% *}")
LTS_VERSIONS+=("${entry##* }")
done
LAST_LTS_RELEASE="${LTS_RELEASES[-1]}" LAST_LTS_RELEASE="${LTS_RELEASES[-1]}"
if [ -n "$1" ]; then if [ -n "$1" ]; then
@@ -21,22 +33,26 @@ if [ -n "$1" ]; then
done done
if [ "$VALID" -eq 0 ]; then if [ "$VALID" -eq 0 ]; then
echo "Error: '$SELECTED_RELEASE' is not a valid LTS release." echo "Error: '$SELECTED_RELEASE' is not a valid LTS release."
echo "Available: ${LTS_RELEASES[*]}" printf "Available: "
for i in "${!LTS_RELEASES[@]}"; do
printf "%s (%s) " "${LTS_RELEASES[$i]}" "${LTS_VERSIONS[$i]}"
done
echo ""
exit 1 exit 1
fi fi
else else
echo "" echo ""
echo "Available Ubuntu LTS versions:" echo "Available Ubuntu LTS versions:"
for i in "${!LTS_RELEASES[@]}"; do for i in "${!LTS_RELEASES[@]}"; do
if [ "${LTS_RELEASES[$i]}" = "$SELECTED_RELEASE" ]; then if [ "${LTS_RELEASES[$i]}" = "$LAST_LTS_RELEASE" ]; then
echo " $((i+1))) ${LTS_RELEASES[$i]} (latest)" echo " $((i+1))) ${LTS_VERSIONS[$i]} (${LTS_RELEASES[$i]}) (latest)"
else else
echo " $((i+1))) ${LTS_RELEASES[$i]}" echo " $((i+1))) ${LTS_VERSIONS[$i]} (${LTS_RELEASES[$i]})"
fi fi
done done
echo "" echo ""
read -rp "Select version [1-${#LTS_RELEASES[@]}, default: ${#LTS_RELEASES[@]}]: " SELECTION read -rp "Select version [1-${#LTS_RELEASES[@]}, default: 1]: " SELECTION
SELECTION="${SELECTION:-${#LTS_RELEASES[@]}}" SELECTION="${SELECTION:-1}"
if ! [[ "$SELECTION" =~ ^[0-9]+$ ]] || [ "$SELECTION" -lt 1 ] || [ "$SELECTION" -gt "${#LTS_RELEASES[@]}" ]; then if ! [[ "$SELECTION" =~ ^[0-9]+$ ]] || [ "$SELECTION" -lt 1 ] || [ "$SELECTION" -gt "${#LTS_RELEASES[@]}" ]; then
echo "Error: Invalid selection" echo "Error: Invalid selection"
exit 1 exit 1