gameservergame-servergame-servershacktoberfestdedicated-game-serversgamelinuxgsmserverbashgaminglinuxmultiplayer-game-servershell
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
149 lines
4.9 KiB
149 lines
4.9 KiB
#!/bin/bash
|
|
# LinuxGSM command_workshop_install.sh module
|
|
# Author: Daniel Gibbs
|
|
# Contributors: http://linuxgsm.com/contrib
|
|
# Website: https://linuxgsm.com
|
|
# Description: List and installs available mods along with mods_list.sh and mods_core.sh.
|
|
|
|
commandname="WORKSHOP-INSTALL"
|
|
commandaction="Installing Steam Workshop mods"
|
|
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
|
|
fn_firstcommand_set
|
|
|
|
check.sh
|
|
workshop_core.sh
|
|
|
|
fn_print_header
|
|
|
|
fn_workshop_get_list
|
|
|
|
for modid in "${workshoplist[@]}"; do
|
|
modname="$(fn_workshop_get_mod_name $modid)"
|
|
if fn_workshop_check_mod_update $modid; then
|
|
echo "Mod ${modname} is not up to date."
|
|
fn_workshop_download $modid
|
|
else
|
|
echo "Mod $modname is up to date."
|
|
fi
|
|
done
|
|
|
|
#fn_workshop_download "450814997"
|
|
|
|
# # Displays a list of installed mods.
|
|
# fn_mods_installed_list
|
|
# if [ "${installedmodscount}" -gt "0" ]; then
|
|
# echo -e "Installed addons/mods"
|
|
# echo -e "================================="
|
|
# # Go through all available commands, get details and display them to the user.
|
|
# for ((llindex = 0; llindex < ${#installedmodslist[@]}; llindex++)); do
|
|
# # Current mod is the "llindex" value of the array we're going through.
|
|
# currentmod="${installedmodslist[llindex]}"
|
|
# fn_mod_get_info
|
|
# # Display mod info to the user.
|
|
# echo -e " * ${green}${modcommand}${default}${default}"
|
|
# done
|
|
# echo -e ""
|
|
# fi
|
|
|
|
# echo -e "Available addons/mods"
|
|
# echo -e "================================="
|
|
# # Display available mods from mods_list.sh.
|
|
# # Set and reset vars
|
|
# compatiblemodslistindex=0
|
|
# # As long as we're within index values.
|
|
# while [ "${compatiblemodslistindex}" -lt "${#compatiblemodslist[@]}" ]; do
|
|
# # Set values for convenience.
|
|
# displayedmodname="${compatiblemodslist[compatiblemodslistindex]}"
|
|
# displayedmodcommand="${compatiblemodslist[compatiblemodslistindex + 1]}"
|
|
# displayedmodsite="${compatiblemodslist[compatiblemodslistindex + 2]}"
|
|
# displayedmoddescription="${compatiblemodslist[compatiblemodslistindex + 3]}"
|
|
# # Output mods to the user.
|
|
# echo -e "${displayedmodname} - ${displayedmoddescription} - ${displayedmodsite}"
|
|
# echo -e " * ${cyan}${displayedmodcommand}${default}"
|
|
# # Increment index from the amount of values we just displayed.
|
|
# let "compatiblemodslistindex+=4"
|
|
# ((totalmodsavailable++))
|
|
# done
|
|
|
|
# # If no mods are available for a specific game.
|
|
# if [ -z "${compatiblemodslist}" ]; then
|
|
# fn_print_fail_nl "No mods are currently available for ${gamename}."
|
|
# fn_script_log_info "No mods are currently available for ${gamename}."
|
|
# core_exit.sh
|
|
# fi
|
|
# fn_script_log_info "${totalmodsavailable} addons/mods are available for install"
|
|
|
|
# ## User selects a mod.
|
|
# echo -e ""
|
|
# while [[ ! " ${availablemodscommands[@]} " =~ " ${usermodselect} " ]]; do
|
|
# echo -en "Enter an ${cyan}addon/mod${default} to ${green}install${default} (or exit to abort): "
|
|
# read -r usermodselect
|
|
# # Exit if user says exit or abort.
|
|
# if [ "${usermodselect}" == "exit" ] || [ "${usermodselect}" == "abort" ]; then
|
|
# core_exit.sh
|
|
# # Supplementary output upon invalid user input.
|
|
# elif [[ ! " ${availablemodscommands[@]} " =~ " ${usermodselect} " ]]; then
|
|
# fn_print_error2_nl "${usermodselect} is not a valid addon/mod."
|
|
# fi
|
|
# done
|
|
# # Get mod info.
|
|
# currentmod="${usermodselect}"
|
|
# fn_mod_get_info
|
|
|
|
# echo -e ""
|
|
# echo -e "Installing ${modprettyname}"
|
|
# echo -e "================================="
|
|
# fn_script_log_info "${modprettyname} selected for install"
|
|
|
|
# # Check if the mod is already installed and warn the user.
|
|
# if [ -f "${modsinstalledlistfullpath}" ]; then
|
|
# if [ "$(sed -n "/^${modcommand}$/p" "${modsinstalledlistfullpath}")" ]; then
|
|
# fn_print_warning_nl "${modprettyname} is already installed"
|
|
# fn_script_log_warn "${modprettyname} is already installed"
|
|
# echo -e " * Any configs may be overwritten."
|
|
# if ! fn_prompt_yn "Continue?" Y; then
|
|
# core_exit.sh
|
|
# fi
|
|
# fn_script_log_info "User selected to continue"
|
|
# fi
|
|
# fi
|
|
|
|
# ## Installation.
|
|
# # If amxmodx check if metamod exists first
|
|
# if [ "${modcommand}" == "amxmodx" ]; then
|
|
# fn_mod_exist "metamod"
|
|
# fi
|
|
|
|
# if [ "${modcommand}" == "amxmodxcs" ] \
|
|
# || [ "${modcommand}" == "amxmodxdod" ] \
|
|
# || [ "${modcommand}" == "amxmodxtfc" ] \
|
|
# || [ "${modcommand}" == "amxmodxns" ] \
|
|
# || [ "${modcommand}" == "amxmodxts" ]; then
|
|
# fn_mod_exist "amxmodx"
|
|
# fi
|
|
|
|
# fn_create_mods_dir
|
|
# fn_mods_clear_tmp_dir
|
|
# fn_mods_create_tmp_dir
|
|
# fn_mod_install_files
|
|
# fn_mod_lowercase
|
|
# fn_mod_create_filelist
|
|
# fn_mod_copy_destination
|
|
# fn_mod_add_list
|
|
# fn_mod_tidy_files_list
|
|
# fn_mods_clear_tmp_dir
|
|
|
|
# # Create/modify existing liblist.gam file for Metamod
|
|
# if [ "${modcommand}" == "metamod" ]; then
|
|
# fn_mod_install_liblist_gam_file
|
|
# fi
|
|
|
|
# # Create/modify plugins.ini file for Metamod
|
|
# if [ "${modcommand}" == "amxmodx" ]; then
|
|
# fn_mod_install_amxmodx_file
|
|
# fi
|
|
|
|
# echo -e "${modprettyname} installed"
|
|
# fn_script_log_pass "${modprettyname} installed."
|
|
|
|
core_exit.sh
|
|
|