fix: pick variant exclusion

This commit is contained in:
v4n
2025-09-16 14:45:06 +03:00
parent 05548ca460
commit 423ea1280d
2 changed files with 16 additions and 9 deletions
+15 -8
View File
@@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
VERSION="0.6.10" VERSION="0.6.11"
# --- Globals --- # --- Globals ---
@@ -210,18 +210,18 @@ function parse_indexes() {
if [[ $start -le $end ]]; then if [[ $start -le $end ]]; then
for ((i=start; i<=end; i++)); do for ((i=start; i<=end; i++)); do
_returned_indexes=("${_returned_indexes[@]/$i}") # remove index from array _returned_indexes=($(printf "%s\n" "${_returned_indexes[@]}" | grep -vx "$index"))
done done
else else
for ((i=start; i>=end; i--)); do for ((i=start; i>=end; i--)); do
_returned_indexes=("${_returned_indexes[@]/$i}") # remove index from array _returned_indexes=($(printf "%s\n" "${_returned_indexes[@]}" | grep -vx "$index"))
done done
fi fi
else else
# single exclusion # single exclusion
[[ $index -lt 1 || $index -gt $range ]] && { log ERROR "Function parse indexes: index $index out of range (1 -> $range)"; exit 1; } [[ $index -lt 1 || $index -gt $range ]] && { log ERROR "Function parse indexes: index $index out of range (1 -> $range)"; exit 1; }
_returned_indexes=("${_returned_indexes[@]/$index}") # remove index from array _returned_indexes=($(printf "%s\n" "${_returned_indexes[@]}" | grep -vx "$index"))
fi fi
else else
log ERROR "Function parse indexes: invalid index $index" log ERROR "Function parse indexes: invalid index $index"
@@ -937,16 +937,23 @@ function mod_install() {
for i in "${!filtered_dirs[@]}"; do for i in "${!filtered_dirs[@]}"; do
variant_name="${filtered_dirs[$i]}" variant_name="${filtered_dirs[$i]}"
declare -A variants
# if mod_dir contains /tmp/tmp.*/* then remove the /tmp/tmp.*/ part and leave the rest, else just remove the mod_dir part # if mod_dir contains /tmp/tmp.*/* then remove the /tmp/tmp.*/ part and leave the rest, else just remove the mod_dir part
if [[ "$mod_dir" == /tmp/tmp.* ]]; then if [[ "$mod_dir" == /tmp/tmp.* ]]; then
variant_name="${variant_name#$mod_dir/*/}" # remove /tmp/tmp.* part variant_name="${variant_name#$mod_dir/*/}" # remove /tmp/tmp.* part
[[ $i == 0 && "$variant_name" == /tmp/tmp.* ]] && variant_name="$mod_name [base folder]" [[ $i -eq 0 && "$variant_name" == /tmp/tmp.* ]] && variant_name="$mod_name [base folder]"
else else
variant_name="${variant_name#$mod_dir/}" # remove dir name before it variant_name="${variant_name#$mod_dir/}" # remove dir name before it
[[ $i == 0 && "$variant_name" == "$mod_dir" ]] && variant_name="$mod_name [base folder]" [[ $i -eq 0 && "$variant_name" == "$mod_dir" ]] && variant_name="$mod_name [base folder]"
fi
if [[ $i -ne 0 ]]; then
variants[$i]="$variant_name"
else
variants[0]="base"
fi fi
log INFO "$((i + 1)). $variant_name" log INFO "$((i + 1)). $variant_name"
@@ -975,10 +982,10 @@ function mod_install() {
# update mod_name to contain the variant name # update mod_name to contain the variant name
if [[ $has_atleast_one_variant == false ]]; then if [[ $has_atleast_one_variant == false ]]; then
mod_name="${mod_name} [$(basename "${filtered_dirs[$((index - 1))]}")" mod_name="${mod_name} [${variants[$((index - 1))]}"
has_atleast_one_variant=true has_atleast_one_variant=true
else else
mod_name="${mod_name} - $(basename "${filtered_dirs[$((index - 1))]}")" mod_name="${mod_name} - ${variants[$((index - 1))]}"
fi fi
# add the files to the mod_files array # add the files to the mod_files array
+1 -1
View File
@@ -1 +1 @@
0.6.10 0.6.11