Browse Source

Added SourceMod Auto Installer

pull/553/head
Jared Ballou 10 years ago
parent
commit
de2835e728
  1. 10
      _MasterScript/lgsm-core
  2. 270
      functions/core_functions.sh
  3. 3
      functions/core_getopt.sh
  4. 77
      functions/install_sourcemod.sh

10
_MasterScript/lgsm-core

@ -34,12 +34,20 @@ lgsmdir="${rootdir}/lgsm"
# Temporary path to store and manipulate settings
settingsdir="${lgsmdir}/settings.tmp"
# Supported Game Data
gamedatadir="${lgsmdir}/cfg/gamedata"
gamedatadir="${lgsmdir}/gamedata"
# Config path for local instances
scriptcfgdir="${lgsmdir}/cfg/servers"
# Temporary cache location
cachedir="${lgsmdir}/tmp"
# Create all the directories we need
for dir in $(grep '^[a-zA-Z0-9]*dir=' $0 | cut -d'=' -f1); do
if [ ! -e "${!dir}" ]; then
echo "Creating ${dir} at ${!dir}"
mkdir -p "${!dir}"
fi
done
exit
# Git last commit file (for tracking updates)
lastcommit_file="${cachedir}/lastcommit"

270
functions/core_functions.sh

@ -10,84 +10,84 @@ lgsm_version="060116"
#Legacy functions
fn_functions(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
fn_getopt(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
# Core
core_getopt.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
core_messages.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
# Command
command_console.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
command_debug.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
command_details.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
command_email_test.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
command_backup.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
command_monitor.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
command_start.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
command_stop.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
command_validate.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
command_install.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
command_ts3_server_pass.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
fn_restart(){
@ -102,196 +102,196 @@ command_start.sh
# Checks
check.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
check_config.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
check_ip.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
check_logs.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
check_root.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
check_steamcmd.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
check_steamuser.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
check_systemdir.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
check_tmux.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
# Compress
compress_unreal2_maps.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
compress_ut99_maps.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
# Dev
command_dev_debug.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
command_dev_detect_deps.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
# Fix
fix.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
fix_arma3.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
fix_csgo.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
fix_dst.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
fix_ins.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
fix_steamcmd.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
fix_glibc.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
fix_ro.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
fix_kf.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
fix_ut2k4.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
# Info
info_config.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
info_distro.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
info_glibc.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
info_ts3status.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
# Email
email.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
# Logs
logs.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
# Monitor
monitor_gsquery.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
# Update
update_check.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
update_functions.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
update_dl.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
update_functions.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
@ -305,92 +305,94 @@ command_install.sh
}
install_complete.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
install_config.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
install_gsquery.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
install_gslt.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
install_header.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
install_logs.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
install_retry.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
install_serverdir.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
install_serverfiles.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
install_sourcemod.sh(){
fn_runfunction "${FUNCNAME}"
}
install_steamcmd.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
install_ts3.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
install_ts3db.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
install_ut2k4.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
install_dl_ut2k4.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
install_ut2k4_key.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
install_ut99.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
install_dl_ut99.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
fix_ut99.sh(){
functionfile="${FUNCNAME}"
fn_runfunction
fn_runfunction "${FUNCNAME}"
}
# Calls on-screen messages

3
functions/core_getopt.sh

@ -41,6 +41,8 @@ case "$getopt" in
command_install.sh;;
ai|auto-install)
fn_autoinstall;;
sm|sourcemod)
install_sourcemod.sh;;
dd|depsdetect)
command_dev_detect_deps.sh;;
*)
@ -65,6 +67,7 @@ case "$getopt" in
echo -e "\e[34mdebug\t\e[0mSee the output of the server directly to your terminal."
echo -e "\e[34minstall\t\e[0mInstall the server."
echo -e "\e[34mauto-install\t\e[0mInstall the server, without prompts."
echo -e "\e[34msourcemod\t\e[0mInstall SourceMod."
} | column -s $'\t' -t
esac
exit

77
functions/install_sourcemod.sh

@ -0,0 +1,77 @@
#!/bin/bash
# LGSM install_sourcemod.sh
# Author: Jared Ballou
# Website: http://gameservermanagers.com
# This downloads and installs the latest stable versions of MetaMod and SourceMod
lgsm_version="200116"
# MetaMod
fn_install_metamod(){
# Get installation path for MetaMod
mm_path="${1:-"${systemdir}/addons/metamod"}"
mm_root=$(cd "$(dirname $(dirname "${mm_path}"))" && pwd)
if [ -e "${mm_path}" ]; then
read -p "WARNING! MetaMod exists at ${mm_path}! OVERWRITE!? [y/N]: " input
if [ "${input}" != "y" ] && [ "${input}" != "Y" ]; then return; fi
fi
# Download URL base
mm_url_base="http://www.sourcemm.net/downloads/"
# Get latest release file name
echo "Getting latest MetaMod version..."
mm_file_latest="$(curl -sL "${mm_url_base}" | grep -m1 -o "mmsource-[0-9\.a-zA-Z]*-linux\.tar\.gz")"
mm_file="${cachedir}/${mm_file_latest}"
# If file is not here, download it
if [ ! -e "${mm_file}" ]; then
echo -ne "Downloading ${mm_file_latest}... \c"
# Get mirror URLs
mm_file_urls="$(curl -sL "${mm_url_base}${mm_file_latest}" | grep -o -E 'href="http([^"#]+)mmsource-1.10.6-linux.tar.gz"' | cut -d'"' -f2)"
# Try each mirror
for url in $mm_file_urls; do
# Download file
curl -sL "${url}" -o "${mm_file}"
# If file downloaded, exit loop
if [ -e "${mm_file}" ]; then break; fi
done
if [ ! -e "${mm_file}" ]; then
fn_colortext red FAILED
exit 1
else
fn_colortext green DONE
fi
fi
# Unzip MetaMod to addons
tar -xzvpf "${mm_file}" -C "${mm_root}"
}
fn_install_sourcemod(){
# Get installation path for SourceMod
sm_path="${1:-"${systemdir}/addons/sourcemod"}"
sm_root=$(cd "$(dirname $(dirname "${sm_path}"))" && pwd)
if [ -e "${sm_path}" ]; then
read -p "WARNING! SourceMod exists at ${sm_path}! OVERWRITE!? [y/N]: " input
if [ "${input}" != "y" ] && [ "${input}" != "Y" ]; then return; fi
fi
# Install SourceMod to game server
sm_major_version="1.7"
sm_url_base="http://www.sourcemod.net/smdrop/${sm_major_version}/"
sm_url_latest="${sm_url_base}sourcemod-latest-linux"
sm_file_latest="$(curl -sL "${sm_url_latest}")"
sm_url_file="${sm_url_base}${sm_file_latest}"
sm_file="${cachedir}/${sm_file_latest}"
if [ ! -e "${sm_file}" ]; then
echo -ne "Downloading ${sm_file_latest}... \c"
curl -sL "${sm_url_file}" -o "${sm_file}"
if [ ! -e "${sm_file}" ]; then
fn_colortext red FAILED
exit 1
else
fn_colortext green DONE
fi
fi
# Unzip SourceMod to addons
tar -xzvpf "${sm_file}" -C "${sm_root}"
}
fn_install_metamod
fn_install_sourcemod
Loading…
Cancel
Save