|
|
@ -44,7 +44,7 @@ fn_mod_lowercase(){ |
|
|
|
fn_script_log "Converting ${modprettyname} files to lowercase" |
|
|
|
files=$(find "${extractdir}" -depth | wc -l) |
|
|
|
echo -en "\r" |
|
|
|
while read src; do |
|
|
|
while read -r src; do |
|
|
|
dst=`dirname "${src}"`/`basename "${src}" | tr '[A-Z]' '[a-z]'` |
|
|
|
if [ "${src}" != "${dst}" ] |
|
|
|
then |
|
|
@ -126,7 +126,7 @@ fn_mod_tidy_files_list(){ |
|
|
|
# generate elements to remove from list |
|
|
|
removefromlistamount="$(echo "${removefromlist}" | awk -F ';' '{ print NF }')" |
|
|
|
# Test all subvalue of "removefromlist" using the ";" separator |
|
|
|
for ((filesindex=1; filesindex < ${removefromlistamount}; filesindex++)); do |
|
|
|
for ((filesindex=1; filesindex < removefromlistamount; filesindex++)); do |
|
|
|
# Put current file into test variable |
|
|
|
removefilevar="$(echo "${removefromlist}" | awk -F ';' -v x=${filesindex} '{ print $x }')" |
|
|
|
# Delete matching line(s) |
|
|
@ -166,31 +166,13 @@ fn_mod_get_info(){ |
|
|
|
# When "MOD" is found |
|
|
|
if [ "${mods_global_array[index]}" == "MOD" ]; then |
|
|
|
# Get info |
|
|
|
if [ -z "$index" ]; then |
|
|
|
fn_print_error "index variable not set. Please report an issue." |
|
|
|
echo "* https://github.com/GameServerManagers/LinuxGSM/issues" |
|
|
|
exitcode="1" |
|
|
|
core_exit.sh |
|
|
|
fi |
|
|
|
modcommand="${mods_global_array[index+1]}" |
|
|
|
modprettyname="${mods_global_array[index+2]}" |
|
|
|
modurl="${mods_global_array[index+3]}" |
|
|
|
modfilename="${mods_global_array[index+4]}" |
|
|
|
modsubdirs="${mods_global_array[index+5]}" |
|
|
|
modlowercase="${mods_global_array[index+6]}" |
|
|
|
modinstalldir="${mods_global_array[index+7]}" |
|
|
|
modkeepfiles="${mods_global_array[index+8]}" |
|
|
|
modengines="${mods_global_array[index+9]}" |
|
|
|
modgames="${mods_global_array[index+10]}" |
|
|
|
modexcludegames="${mods_global_array[index+11]}" |
|
|
|
modsite="${mods_global_array[index+12]}" |
|
|
|
moddescription="${mods_global_array[index+13]}" |
|
|
|
fi |
|
|
|
fn_mod_info |
|
|
|
modinfocommand="1" |
|
|
|
break |
|
|
|
fi |
|
|
|
((totalmods++)) |
|
|
|
done |
|
|
|
|
|
|
|
fi |
|
|
|
# Exit the loop if job is done |
|
|
|
if [ "${modinfocommand}" == "1" ]; then |
|
|
@ -207,12 +189,40 @@ fn_mod_get_info(){ |
|
|
|
fi |
|
|
|
} |
|
|
|
|
|
|
|
# Define all variables for a mod at once when index is set to a separator |
|
|
|
fn_mods_define(){ |
|
|
|
if [ -z "$index" ]; then |
|
|
|
fn_print_error "index variable not set. Please report an issue." |
|
|
|
echo "* https://github.com/GameServerManagers/LinuxGSM/issues" |
|
|
|
exitcode="1" |
|
|
|
core_exit.sh |
|
|
|
fi |
|
|
|
modcommand="${mods_global_array[index+1]}" |
|
|
|
modprettyname="${mods_global_array[index+2]}" |
|
|
|
modurl="${mods_global_array[index+3]}" |
|
|
|
modfilename="${mods_global_array[index+4]}" |
|
|
|
modsubdirs="${mods_global_array[index+5]}" |
|
|
|
modlowercase="${mods_global_array[index+6]}" |
|
|
|
modinstalldir="${mods_global_array[index+7]}" |
|
|
|
modkeepfiles="${mods_global_array[index+8]}" |
|
|
|
modengines="${mods_global_array[index+9]}" |
|
|
|
modgames="${mods_global_array[index+10]}" |
|
|
|
modexcludegames="${mods_global_array[index+11]}" |
|
|
|
modsite="${mods_global_array[index+12]}" |
|
|
|
moddescription="${mods_global_array[index+13]}" |
|
|
|
} |
|
|
|
|
|
|
|
# Builds list of installed mods |
|
|
|
# using installed-mods.txt grabing mod info from mods_list.sh |
|
|
|
fn_mods_installed_list(){ |
|
|
|
fn_mods_count_installed |
|
|
|
# Set/reset variables |
|
|
|
installedmodsline="1" |
|
|
|
installedmodslist=() |
|
|
|
modprettynamemaxlength="0" |
|
|
|
modsitemaxlength="0" |
|
|
|
moddescriptionmaxlength="0" |
|
|
|
modcommandmaxlength="0" |
|
|
|
# Loop through every line of the installed mods list ${modsinstalledlistfullpath} |
|
|
|
while [ ${installedmodsline} -le ${installedmodscount} ]; do |
|
|
|
currentmod="$(sed "${installedmodsline}q;d" "${modsinstalledlistfullpath}")" |
|
|
@ -235,10 +245,6 @@ fn_mods_available(){ |
|
|
|
# First, reset variables |
|
|
|
compatiblemodslist=() |
|
|
|
availablemodscommands=() |
|
|
|
modprettynamemaxlength="0" |
|
|
|
modsitemaxlength="0" |
|
|
|
moddescriptionmaxlength="0" |
|
|
|
modcommandmaxlength="0" |
|
|
|
# Find compatible games |
|
|
|
# Find separators through the global array |
|
|
|
for ((index="0"; index <= ${#mods_global_array[@]}; index++)); do |
|
|
@ -270,7 +276,7 @@ fn_compatible_mod_games(){ |
|
|
|
# How many games we need to test |
|
|
|
gamesamount="$(echo "${modgames}" | awk -F ';' '{ print NF }')" |
|
|
|
# Test all subvalue of "modgames" using the ";" separator |
|
|
|
for ((gamevarindex=1; gamevarindex < ${gamesamount}; gamevarindex++)); do |
|
|
|
for ((gamevarindex=1; gamevarindex < gamesamount; gamevarindex++)); do |
|
|
|
# Put current game name into modtest variable |
|
|
|
gamemodtest="$( echo "${modgames}" | awk -F ';' -v x=${gamevarindex} '{ print $x }' )" |
|
|
|
# If game name matches |
|
|
@ -312,7 +318,7 @@ fn_not_compatible_mod_games(){ |
|
|
|
# How many engines we need to test |
|
|
|
excludegamesamount="$(echo "${modexcludegames}" | awk -F ';' '{ print NF }')" |
|
|
|
# Test all subvalue of "modexcludegames" using the ";" separator |
|
|
|
for ((gamevarindex=1; gamevarindex < ${excludegamesamount}; gamevarindex++)); do |
|
|
|
for ((gamevarindex=1; gamevarindex < excludegamesamount; gamevarindex++)); do |
|
|
|
# Put current engine name into modtest variable |
|
|
|
excludegamemodtest="$( echo "${modexcludegames}" | awk -F ';' -v x=${gamevarindex} '{ print $x }' )" |
|
|
|
# If engine name matches |
|
|
@ -404,15 +410,18 @@ fn_mods_clear_tmp_dir(){ |
|
|
|
fi |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
# Exit if no mods were installed |
|
|
|
fn_mods_check_installed(){ |
|
|
|
# Count installed mods |
|
|
|
fn_mods_count_installed(){ |
|
|
|
if [ -f "${modsinstalledlistfullpath}" ]; then |
|
|
|
installedmodscount="$(cat "${modsinstalledlistfullpath}" | wc -l)" |
|
|
|
installedmodscount="$(wc -l < "${modsinstalledlistfullpath}")" |
|
|
|
else |
|
|
|
installedmodscount=0 |
|
|
|
fi |
|
|
|
} |
|
|
|
|
|
|
|
# Exit if no mods were installed |
|
|
|
fn_mods_check_installed(){ |
|
|
|
# Count installed mods |
|
|
|
|
|
|
|
# If no mods are found |
|
|
|
if [ ${installedmodscount} -eq 0 ]; then |
|
|
|
fn_print_information_nl "No installed mods or addons were found" |
|
|
@ -426,7 +435,7 @@ fn_check_mod_files_list(){ |
|
|
|
# File list must exist and be valid before any operation on it |
|
|
|
if [ -f "${modsdir}/${modcommand}-files.txt" ]; then |
|
|
|
# How many lines is the file list |
|
|
|
modsfilelistsize="$(cat "${modsdir}/${modcommand}-files.txt" | wc -l)" |
|
|
|
modsfilelistsize="$(wc -l < "${modsdir}/${modcommand}-files.txt")" |
|
|
|
# If file list is empty |
|
|
|
if [ "${modsfilelistsize}" -eq 0 ]; then |
|
|
|
fn_print_failure "${modcommand}-files.txt is empty" |
|
|
@ -443,5 +452,4 @@ fn_check_mod_files_list(){ |
|
|
|
|
|
|
|
# Database initialisation |
|
|
|
mods_list.sh |
|
|
|
mods_dir.sh |
|
|
|
fn_mods_available |