lgsm local mirror
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.
 
 

554 lines
8.7 KiB

#!/bin/bash
# LGSM core_functions.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Description: Defines all functions to allow download and execution of functions using fn_fetch_function.
# This function is called first before any other function. Without this file other functions will not load.
# Fixes for legacy code
if [ "${gamename}" == "Teamspeak 3" ]; then
gamename="TeamSpeak 3"
elif [ "${gamename}" == "Counter Strike: Global Offensive" ]; then
gamename="Counter-Strike: Global Offensive"
elif [ "${gamename}" == "Counter Strike: Source" ]; then
gamename="Counter-Strike: Source"
elif [ "${gamename}" == "Quake Live" ]; then
engine="idtech3_ql"
fi
if [ "${emailnotification}" == "on" ]; then
emailalert="on"
fi
## Code/functions for legacy servers
fn_functions(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
fn_getopt(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
## In case older versions are missing these vars
if [ -z "${lgsmdir}" ]||[ -z "${functionsdir}" ]||[ -z "${libdir}" ]||[ -z "${tmpdir}" ]; then
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
tmpdir="${lgsmdir}/tmp"
fi
## fn_fetch_core_dl placed here to allow legacy servers to still download core functions
fn_fetch_core_dl(){
github_file_url_dir="lgsm/functions"
github_file_url_name="${functionfile}"
filedir="${functionsdir}"
filename="${github_file_url_name}"
githuburl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_file_url_dir}/${github_file_url_name}"
# If the file is missing, then download
if [ ! -f "${filedir}/${filename}" ]; then
if [ ! -d "${filedir}" ]; then
mkdir -p "${filedir}"
fi
echo -e " fetching ${filename}...\c"
# Check curl exists and use available path
curlpaths="$(command -v curl 2>/dev/null) $(which curl >/dev/null 2>&1) /usr/bin/curl /bin/curl /usr/sbin/curl /sbin/curl)"
for curlcmd in ${curlpaths}
do
if [ -x "${curlcmd}" ]; then
break
fi
done
# If curl exists download file
if [ "$(basename ${curlcmd})" == "curl" ]; then
curlfetch=$(${curlcmd} -s --fail -o "${filedir}/${filename}" "${githuburl}" 2>&1)
if [ $? -ne 0 ]; then
echo -e "${red}FAIL${default}\n"
echo "${curlfetch}"
echo -e "${githuburl}\n"
exit 1
else
echo -e "${green}OK${default}"
fi
else
echo -e "${red}FAIL${default}\n"
echo "Curl is not installed!"
echo -e ""
exit 1
fi
chmod +x "${filedir}/${filename}"
fi
source "${filedir}/${filename}"
}
# Creates tmp dir if missing
if [ ! -d "${tmpdir}" ]; then
mkdir -p "${tmpdir}"
fi
# Core
core_dl.sh(){
# Functions are defined in core_functions.sh.
functionfile="${FUNCNAME}"
fn_fetch_core_dl
}
core_exit.sh(){
functionfile="${FUNCNAME}"
fn_fetch_core_dl
}
core_getopt.sh(){
functionfile="${FUNCNAME}"
fn_fetch_core_dl
}
core_trap.sh(){
functionfile="${FUNCNAME}"
fn_fetch_core_dl
}
core_messages.sh(){
functionfile="${FUNCNAME}"
fn_fetch_core_dl
}
# Commands
command_console.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
command_debug.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
command_postdetails.sh(){
functionfile="${FUNCNAME}"
tempffname="${functionfile}"
# First, grab the command_postdetails.sh file
fn_fetch_function
# But then next, command_details.sh needs to also be pulled
# because command_postdetails.sh sources its functions -CedarLUG
functionfile="command_details.sh"
fn_fetch_function
functionfile="${tempffname}"
}
command_details.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
command_test_alert.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
command_backup.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
command_monitor.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
command_start.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
command_stop.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
command_validate.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
command_install.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
command_fastdl.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
command_ts3_server_pass.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
command_restart.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
# Checks
check.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
check_config.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
check_deps.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
check_glibc.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
check_ip.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
check_logs.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
check_permissions.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
check_root.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
check_status.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
check_steamcmd.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
check_system_dir.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
check_system_requirements.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
check_tmuxception.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
# Compress
compress_unreal2_maps.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
compress_ut99_maps.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
# Dev
command_dev_debug.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
command_dev_detect_deps.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
command_dev_detect_glibc.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
command_dev_detect_ldd.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
# Fix
fix.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
fix_arma3.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
fix_csgo.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
fix_dst.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
fix_ges.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
fix_ins.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
fix_steamcmd.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
fix_glibc.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
fix_ro.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
fix_kf.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
fix_ut2k4.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
fix_ut.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
# Info
info_config.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
info_distro.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
info_glibc.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
info_parms.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
# Alert
alert.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
alert_email.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
alert_pushbullet.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
# Logs
logs.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
# Monitor
monitor_gsquery.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
# Update
command_update_functions.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
command_update.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
update_ts3.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
update_minecraft.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
update_mumble.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
update_steamcmd.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
fn_update_functions.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
#
## Installer functions
#
fn_autoinstall(){
autoinstall=1
command_install.sh
}
install_complete.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
install_config.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
install_gsquery.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
install_gslt.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
install_header.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
install_logs.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
install_minecraft_eula.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
install_retry.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
install_server_dir.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
install_server_files.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
install_steamcmd.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
install_ts3.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
install_ts3db.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
install_ut2k4.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
install_dl_ut2k4.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
install_ut2k4_key.sh(){
functionfile="${FUNCNAME}"
fn_fetch_function
}
# Calls the global Ctrl-C trap
core_trap.sh
# Calls on-screen messages
core_messages.sh
#Calls file downloader
core_dl.sh