fix: sorting mods
This commit is contained in:
@@ -212,13 +212,17 @@ function mod_install() {
|
|||||||
echo -e "${RED}Error${NC}: unzip is not installed, please install the package and try again." >&2
|
echo -e "${RED}Error${NC}: unzip is not installed, please install the package and try again." >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ ! -f "$mod_zip" ]]; then
|
if [[ ! -f "$mod_zip" ]]; then
|
||||||
echo -e "${RED}Error${NC}: Zip file $mod_zip does not exist." >&2
|
echo -e "${RED}Error${NC}: Zip file $mod_zip does not exist." >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# check if mod name was provided, otherwise use the zip file name, get rid of .zip and version numbers
|
||||||
if [[ -z "$mod_name" ]]; then
|
if [[ -z "$mod_name" ]]; then
|
||||||
mod_name=$(basename "$mod_zip" | sed -E 's/\.zip//')
|
mod_name=$(basename "$mod_zip" | sed -E 's/\.zip//' | sed -E 's/-\d.*//')
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mod_dir=$(mktemp -d)
|
mod_dir=$(mktemp -d)
|
||||||
unzip -qq "$mod_zip" -d "$mod_dir"
|
unzip -qq "$mod_zip" -d "$mod_dir"
|
||||||
fi
|
fi
|
||||||
@@ -254,9 +258,13 @@ function mod_install() {
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
declare -A patch_count # hash table - in case multiple named files are needed for 1 mod install, store the patch count
|
# hash table - in case multiple named files are needed for 1 mod install, store the patch count
|
||||||
target_files=() # store the target files so we can put them in the database later
|
declare -A patch_count
|
||||||
mod_files=($(printf "%s\n" "${mod_files[@]}" | sort -t. -k1,1 -k2,2n)) # sort the mod files because with the below logic, the .stream and .gpu_resources files need to come after their respective patch files
|
# store the target files so we can put them in the database later
|
||||||
|
target_files=()
|
||||||
|
# sort the mod files because with the below logic, the .stream and .gpu_resources files need to come after their respective patch files
|
||||||
|
IFS=$'\n' mod_files=($(printf "%s\n" "${mod_files[@]}" | sort -t. -k1,1 -k2,2n)); unset IFS
|
||||||
|
|
||||||
for file in "${mod_files[@]}"; do
|
for file in "${mod_files[@]}"; do
|
||||||
base_name=$(get_basename "$file")
|
base_name=$(get_basename "$file")
|
||||||
patch_prefix="$MODS_DIR/${base_name}.patch_"
|
patch_prefix="$MODS_DIR/${base_name}.patch_"
|
||||||
|
|||||||
Reference in New Issue
Block a user