Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions lgsm/functions/alert.sh
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,15 @@ fn_alert_update(){
alertbody="${gamename} received update"
}

fn_alert_check_update(){
fn_script_log_info "Sending alert: Update available"
alertsubject="Alert - ${selfname} - Update available"
alertemoji="🎮"
alertsound="1"
alerturl="not enabled"
alertbody="${gamename} update available"
}

fn_alert_permissions(){
fn_script_log_info "Sending alert: Permissions error"
alertsubject="Alert - ${selfname}: Permissions error"
Expand Down Expand Up @@ -88,6 +97,8 @@ elif [ "${alert}" == "test" ]; then
fn_alert_test
elif [ "${alert}" == "update" ]; then
fn_alert_update
elif [ "${alert}" == "check-update" ]; then
fn_alert_check_update
elif [ "${alert}" == "config" ]; then
fn_alert_config
fi
Expand Down
141 changes: 2 additions & 139 deletions lgsm/functions/check_steamcmd.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,145 +6,8 @@

functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"

fn_install_steamcmd(){
if [ "${shortname}" == "ark" ]&&[ "${installsteamcmd}" == "1" ]; then
steamcmddir="${serverfiles}/Engine/Binaries/ThirdParty/SteamCMD/Linux"
fi
if [ ! -d "${steamcmddir}" ]; then
mkdir -p "${steamcmddir}"
fi
remote_fileurl="${1}"
remote_fileurl_backup="${2}"
remote_fileurl_name="${3}"
remote_fileurl_backup_name="${4}"
local_filedir="${5}"
local_filename="${6}"
chmodx="${7:-0}"
run="${8:-0}"
forcedl="${9:-0}"
md5="${10:-0}"
fn_fetch_file "http://media.steampowered.com/client/steamcmd_linux.tar.gz" "" "" "" "${tmpdir}" "steamcmd_linux.tar.gz" "" "norun" "noforce" "nomd5"
fn_dl_extract "${tmpdir}" "steamcmd_linux.tar.gz" "${steamcmddir}"
chmod +x "${steamcmddir}/steamcmd.sh"
}

fn_check_steamcmd_user(){
# Checks if steamuser is setup.
if [ "${steamuser}" == "username" ]; then
fn_print_fail_nl "Steam login not set. Update steamuser in ${configdirserver}"
echo -e " * Change steamuser=\"username\" to a valid steam login."
if [ -d "${lgsmlogdir}" ]; then
fn_script_log_fatal "Steam login not set. Update steamuser in ${configdirserver}"
fi
core_exit.sh
fi
# Anonymous user is set if steamuser is missing.
if [ -z "${steamuser}" ]; then
if [ -d "${lgsmlogdir}" ]; then
fn_script_log_info "Using anonymous Steam login"
fi
steamuser="anonymous"
steampass=''
fi
}

fn_check_steamcmd(){
# Checks if SteamCMD exists when starting or updating a server.
# Only install if steamcmd package is missing or steamcmd dir is missing.
if [ ! -f "${steamcmddir}/steamcmd.sh" ]&&[ -z "$(command -v steamcmd 2>/dev/null)" ]; then
if [ "${commandname}" == "INSTALL" ]; then
fn_install_steamcmd
else
fn_print_warn_nl "SteamCMD is missing"
fn_script_log_warn "SteamCMD is missing"
fn_install_steamcmd
fi
elif [ "${commandname}" == "INSTALL" ]; then
fn_print_information "SteamCMD is already installed..."
fn_print_ok_eol_nl
fi
}

fn_check_steamcmd_dir(){
# Worksround that pre-installs the correct steam directories to ensure all packages use the correct Standard.
# https://github.com/ValveSoftware/steam-for-linux/issues/6976#issuecomment-610446347

# Create Steam installation directory.
if [ ! -d "${XDG_DATA_HOME:="${HOME}/.local/share"}/Steam" ]; then
mkdir -p "${XDG_DATA_HOME:="${HOME}/.local/share"}/Steam"
fi

# Create common Steam directory.
if [ ! -d "${HOME}/.steam" ]; then
mkdir -p "${HOME}/.steam"
fi

# Symbolic links to Steam installation directory.
if [ ! -L "${HOME}/.steam/root" ]; then
if [ -d "${HOME}/.steam/root" ]; then
rm "${HOME}/.steam/root"
fi
ln -s "${XDG_DATA_HOME:="${HOME}/.local/share"}/Steam" "${HOME}/.steam/root"
fi

if [ ! -L "${HOME}/.steam/steam" ]; then
if [ -d "${HOME}/.steam/steam" ]; then
rm -rf "${HOME}/.steam/steam"
fi
ln -s "${XDG_DATA_HOME:="${HOME}/.local/share"}/Steam" "${HOME}/.steam/steam"
fi
}

fn_check_steamcmd_dir_legacy(){
# Remove old Steam installation directories ~/Steam and ${rootdir}/steamcmd
if [ -d "${rootdir}/steamcmd" ]&&[ "${steamcmddir}" == "${XDG_DATA_HOME:="${HOME}/.local/share"}/Steam" ]; then
rm -rf "${rootdir:?}/steamcmd"
fi

if [ -d "${HOME}/Steam" ]&&[ "${steamcmddir}" == "${XDG_DATA_HOME:="${HOME}/.local/share"}/Steam" ]; then
rm -rf "${HOME}/Steam"
fi
}

fn_check_steamcmd_ark(){
# Checks if SteamCMD exists in
# Engine/Binaries/ThirdParty/SteamCMD/Linux
# to allow ark mods to work
if [ ! -f "${serverfiles}/Engine/Binaries/ThirdParty/SteamCMD/Linux/steamcmd.sh" ]; then
installsteamcmd=1
if [ "${commandname}" == "INSTALL" ]; then
fn_install_steamcmd
else
fn_print_warn_nl "ARK mods SteamCMD is missing"
fn_script_log_warn "ARK mods SteamCMD is missing"
fn_install_steamcmd
fi
elif [ "${commandname}" == "INSTALL" ]; then
fn_print_information "ARK mods SteamCMD is already installed..."
fn_print_ok_eol_nl
fi
}

fn_check_steamcmd_clear(){
# Will remove steamcmd dir if steamcmd package is installed.
if [ "$(command -v steamcmd 2>/dev/null)" ]&&[ -d "${rootdir}/steamcmd" ]; then
rm -rf "${steamcmddir:?}"
exitcode=$?
if [ "${exitcode}" != 0 ]; then
fn_script_log_fatal "Removing ${rootdir}/steamcmd"
else
fn_script_log_pass "Removing ${rootdir}/steamcmd"
fi
fi
}

fn_check_steamcmd_exec(){
if [ "$(command -v steamcmd 2>/dev/null)" ]; then
steamcmdcommand="steamcmd"
else
steamcmdcommand="./steamcmd.sh"
fi
}
# init steamcmd functions
core_steamcmd.sh

fn_check_steamcmd_clear
fn_check_steamcmd
Expand Down
24 changes: 24 additions & 0 deletions lgsm/functions/command_check_update.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/bin/bash
# LinuxGSM command_check_update.sh function
# Author: Daniel Gibbs
# Website: https://linuxgsm.com
# Description: Handles updating of servers.

commandname="CHECK-UPDATE"
commandaction="check for Update"
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_firstcommand_set

fn_print_dots ""
check.sh
core_logs.sh

core_steamcmd.sh

check_steamcmd.sh

fn_update_steamcmd_localbuild
fn_update_steamcmd_remotebuild
fn_update_steamcmd_compare

core_exit.sh
10 changes: 10 additions & 0 deletions lgsm/functions/core_functions.sh
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,11 @@ functionfile="${FUNCNAME[0]}"
fn_fetch_function
}

core_steamcmd.sh(){
functionfile="${FUNCNAME[0]}"
fn_fetch_function
}

# Commands

command_backup.sh(){
Expand Down Expand Up @@ -599,6 +604,11 @@ functionfile="${FUNCNAME[0]}"
fn_fetch_function
}

command_check_update.sh(){
functionfile="${FUNCNAME[0]}"
fn_fetch_function
}

update_ts3.sh(){
functionfile="${FUNCNAME[0]}"
fn_fetch_function
Expand Down
5 changes: 3 additions & 2 deletions lgsm/functions/core_getopt.sh
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ cmd_console=( "c;console" "command_console.sh" "Access server console." )
cmd_debug=( "d;debug" "command_debug.sh" "Start server directly in your terminal." )
# Update servers only.
cmd_update=( "u;update" "command_update.sh" "Check and apply any server updates." )
cmd_check_update=( "cu;check-update" "command_check_update.sh" "Check if a gameserver update is available" )
cmd_force_update=( "fu;force-update;update-restart;ur" "forceupdate=1; command_update.sh" "Apply server updates bypassing check." )
# SteamCMD servers only.
cmd_validate=( "v;validate" "command_validate.sh" "Validate server files with SteamCMD." )
Expand Down Expand Up @@ -72,9 +73,9 @@ if [ "${shortname}" == "jk2" ]||[ "${engine}" != "idtech3" ];then
fi
fi

# Validate command.
# Validate and check-update command.
if [ "${appid}" ]; then
currentopt+=( "${cmd_validate[@]}" )
currentopt+=( "${cmd_validate[@]}" "${cmd_check_update[@]}" )
fi

# Backup.
Expand Down
Loading