fix: pick variant wrong labels

This commit is contained in:
v4n
2025-09-16 15:35:54 +03:00
parent 96163fc7d9
commit 53d9f8a093
2 changed files with 31 additions and 25 deletions
+22 -16
View File
@@ -1,7 +1,7 @@
#!/usr/bin/env bash
VERSION="0.6.12"
VERSION="0.6.13"
# --- Globals ---
@@ -194,15 +194,24 @@ function parse_indexes() {
_returned_indexes+=("$i")
done
fi
# remove index -5
elif [[ "$index" =~ ^-[0-9] ]]; then
# exclude index -5
elif [[ "$index" =~ ^-[0-9]+$ ]]; then
index=${index#-} # remove the - sign
# if _returned_indexes is empty, populate it with every number from 1 to range
[[ ${#_returned_indexes[@]} -eq 0 ]] && for ((i=1; i<=range; i++)); do _returned_indexes+=("$i"); done
[[ $index -lt 1 || $index -gt $range ]] && { log ERROR "Function parse indexes: index $index out of range (1 -> $range)"; exit 1; }
_returned_indexes=($(printf "%s\n" "${_returned_indexes[@]}" | grep -vx "$index"))
# exclusion range -3..5
elif [[ "$index" =~ ^-[0-9]+\.\.[0-9]+$ ]]; then
index=${index#-} # remove the - sign
# if _returned_indexes is empty, populate it with every number from 1 to range
[[ ${#_returned_indexes[@]} -eq 0 ]] && for ((i=1; i<=range; i++)); do _returned_indexes+=("$i"); done
# if exclusion range
if [[ "$index" =~ ^[0-9]+\.\.[0-9]+$ ]]; then
start=$(echo "$index" | cut -d. -f1)
end=$(echo "$index" | cut -d. -f3)
@@ -210,24 +219,21 @@ function parse_indexes() {
if [[ $start -le $end ]]; then
for ((i=start; i<=end; i++)); do
_returned_indexes=($(printf "%s\n" "${_returned_indexes[@]}" | grep -vx "$index"))
_returned_indexes=($(printf "%s\n" "${_returned_indexes[@]}" | grep -vx "$i"))
log INFO i
done
else
for ((i=start; i>=end; i--)); do
_returned_indexes=($(printf "%s\n" "${_returned_indexes[@]}" | grep -vx "$index"))
_returned_indexes=($(printf "%s\n" "${_returned_indexes[@]}" | grep -vx "$i"))
done
fi
else
# single exclusion
[[ $index -lt 1 || $index -gt $range ]] && { log ERROR "Function parse indexes: index $index out of range (1 -> $range)"; exit 1; }
_returned_indexes=($(printf "%s\n" "${_returned_indexes[@]}" | grep -vx "$index"))
fi
else
log ERROR "Function parse indexes: invalid index $index"
exit 1
fi
done
log INFO "Parsed indexes: ${_returned_indexes[*]}"
}
function get_mod_name_and_index() {
@@ -951,10 +957,10 @@ function mod_install() {
[[ $i -eq 0 && "$variant_name" == "$mod_dir" ]] && variant_name="$mod_name [base folder]"
fi
if [[ $i -ne 0 ]]; then
variants[$i]="$variant_name"
else
if [[ $i -eq 0 && "$variant_name" == "$mod_dir" ]]; then
variants[0]="base"
else
variants[$i]="$variant_name"
fi
log INFO "$((i + 1)). $variant_name"
+1 -1
View File
@@ -1 +1 @@
0.6.12
0.6.13