37 changed files with 537 additions and 46 deletions
@ -0,0 +1,171 @@ |
|||||
|
################################## |
||||
|
######## Default Settings ######## |
||||
|
################################## |
||||
|
# DO NOT EDIT, ANY CHANGES WILL BE OVERWRITTEN! |
||||
|
# Copy settings from here and use them in either: |
||||
|
# common.cfg - applies settings to every instance. |
||||
|
# [instance].cfg - applies settings to a specific instance. |
||||
|
|
||||
|
#### Game Server Settings #### |
||||
|
|
||||
|
## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters |
||||
|
|
||||
|
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters |
||||
|
startparameters="-userdir ${systemdir}/${selfname}" |
||||
|
|
||||
|
#### LinuxGSM Settings #### |
||||
|
|
||||
|
## LinuxGSM Stats |
||||
|
# Send useful stats to LinuxGSM developers. |
||||
|
# https://docs.linuxgsm.com/configuration/linuxgsm-stats |
||||
|
# (on|off) |
||||
|
stats="off" |
||||
|
|
||||
|
## Notification Alerts |
||||
|
# (on|off) |
||||
|
|
||||
|
# Display IP | https://docs.linuxgsm.com/alerts#display-ip |
||||
|
displayip="" |
||||
|
|
||||
|
# More info | https://docs.linuxgsm.com/alerts#more-info |
||||
|
postalert="off" |
||||
|
|
||||
|
# Alert on Start/Stop/Restart |
||||
|
statusalert="off" |
||||
|
|
||||
|
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord |
||||
|
discordalert="off" |
||||
|
discordwebhook="webhook" |
||||
|
|
||||
|
# Email Alerts | https://docs.linuxgsm.com/alerts/email |
||||
|
emailalert="off" |
||||
|
email="[email protected]" |
||||
|
emailfrom="" |
||||
|
|
||||
|
# Gotify Alerts | https://docs.linuxgsm.com/alerts/gotify |
||||
|
gotifyalert="off" |
||||
|
gotifytoken="token" |
||||
|
gotifywebhook="webhook" |
||||
|
|
||||
|
# IFTTT Alerts | https://docs.linuxgsm.com/alerts/ifttt |
||||
|
iftttalert="off" |
||||
|
ifttttoken="accesstoken" |
||||
|
iftttevent="linuxgsm_alert" |
||||
|
|
||||
|
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet |
||||
|
pushbulletalert="off" |
||||
|
pushbullettoken="accesstoken" |
||||
|
channeltag="" |
||||
|
|
||||
|
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover |
||||
|
pushoveralert="off" |
||||
|
pushovertoken="accesstoken" |
||||
|
pushoveruserkey="userkey" |
||||
|
|
||||
|
# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat |
||||
|
rocketchatalert="off" |
||||
|
rocketchatwebhook="webhook" |
||||
|
|
||||
|
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack |
||||
|
slackalert="off" |
||||
|
slackwebhook="webhook" |
||||
|
|
||||
|
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram |
||||
|
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring". |
||||
|
# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all". |
||||
|
telegramapi="api.telegram.org" |
||||
|
telegramalert="off" |
||||
|
telegramtoken="accesstoken" |
||||
|
telegramchatid="" |
||||
|
telegramthreadid="" |
||||
|
telegramsilentnotification="false" |
||||
|
curlcustomstring="" |
||||
|
|
||||
|
## Backup | https://docs.linuxgsm.com/commands/backup |
||||
|
maxbackups="4" |
||||
|
maxbackupdays="30" |
||||
|
stoponbackup="on" |
||||
|
|
||||
|
## Logging | https://docs.linuxgsm.com/features/logging |
||||
|
consolelogging="on" |
||||
|
logdays="7" |
||||
|
|
||||
|
## Monitor | https://docs.linuxgsm.com/commands/monitor |
||||
|
# Query delay time |
||||
|
querydelay="1" |
||||
|
|
||||
|
## ANSI Colors | https://docs.linuxgsm.com/features/ansi-colors |
||||
|
ansi="on" |
||||
|
|
||||
|
#### Advanced Settings #### |
||||
|
|
||||
|
## Message Display Time | https://docs.linuxgsm.com/features/message-display-time |
||||
|
sleeptime="0.5" |
||||
|
|
||||
|
## Stop Mode | https://docs.linuxgsm.com/features/stop-mode |
||||
|
# 1: tmux kill |
||||
|
# 2: CTRL+c |
||||
|
# 3: quit |
||||
|
# 4: quit 120s |
||||
|
# 5: stop |
||||
|
# 6: q |
||||
|
# 7: exit |
||||
|
# 8: 7 Days to Die |
||||
|
# 9: GoldSrc |
||||
|
# 10: Avorion |
||||
|
# 11: end |
||||
|
stopmode="2" |
||||
|
|
||||
|
## Query mode |
||||
|
# 1: session only |
||||
|
# 2: gamedig (gsquery fallback) |
||||
|
# 3: gamedig |
||||
|
# 4: gsquery |
||||
|
# 5: tcp |
||||
|
querymode="3" |
||||
|
querytype="xonotic" |
||||
|
|
||||
|
## Console type |
||||
|
consoleverbose="yes" |
||||
|
consoleinteract="yes" |
||||
|
|
||||
|
## Game Server Details |
||||
|
# Do not edit |
||||
|
gamename="Xonotic" |
||||
|
engine="unreal3" |
||||
|
glibc="2.29" |
||||
|
|
||||
|
#### Directories #### |
||||
|
# Edit with care |
||||
|
|
||||
|
## Game Server Directories |
||||
|
systemdir="${serverfiles}" |
||||
|
executabledir="${systemdir}" |
||||
|
executable="./xonotic-linux64-dedicated" |
||||
|
servercfgdir="${systemdir}/${selfname}/data" |
||||
|
servercfg="server.cfg" |
||||
|
servercfgdefault="${systemdir}/server.cfg" |
||||
|
servercfgfullpath="${servercfgdir}/${servercfg}" |
||||
|
|
||||
|
## Backup Directory |
||||
|
backupdir="${lgsmdir}/backup" |
||||
|
|
||||
|
## Logging Directories |
||||
|
[ -n "${LGSM_LOGDIR}" ] && logdir="${LGSM_LOGDIR}" || logdir="${rootdir}/log" |
||||
|
gamelogdir="${logdir}/server" |
||||
|
lgsmlogdir="${logdir}/script" |
||||
|
consolelogdir="${logdir}/console" |
||||
|
gamelog="${gamelogdir}/${selfname}-game.log" |
||||
|
lgsmlog="${lgsmlogdir}/${selfname}-script.log" |
||||
|
consolelog="${consolelogdir}/${selfname}-console.log" |
||||
|
alertlog="${lgsmlogdir}/${selfname}-alert.log" |
||||
|
postdetailslog="${lgsmlogdir}/${selfname}-postdetails.log" |
||||
|
|
||||
|
## Logs Naming |
||||
|
lgsmlogdate="${lgsmlogdir}/${selfname}-script-$(date '+%Y-%m-%d-%H:%M:%S').log" |
||||
|
consolelogdate="${consolelogdir}/${selfname}-console-$(date '+%Y-%m-%d-%H:%M:%S').log" |
||||
|
gamelogdate="${gamelogdir}/${selfname}-game-$(date '+%Y-%m-%d-%H:%M:%S').log" |
||||
|
|
||||
|
## Log Parameters |
||||
|
logtimestamp="off" |
||||
|
logtimestampformat="%Y-%m-%d %H:%M:%S" |
Can't render this file because it has a wrong number of fields in line 2.
|
Can't render this file because it has a wrong number of fields in line 2.
|
Can't render this file because it has a wrong number of fields in line 2.
|
Can't render this file because it has a wrong number of fields in line 2.
|
Can't render this file because it has a wrong number of fields in line 2.
|
Can't render this file because it has a wrong number of fields in line 4.
|
Can't render this file because it has a wrong number of fields in line 2.
|
Can't render this file because it has a wrong number of fields in line 2.
|
Can't render this file because it has a wrong number of fields in line 2.
|
Can't render this file because it has a wrong number of fields in line 2.
|
Can't render this file because it has a wrong number of fields in line 2.
|
Can't render this file because it has a wrong number of fields in line 2.
|
Can't render this file because it has a wrong number of fields in line 2.
|
Can't render this file because it has a wrong number of fields in line 2.
|
Can't render this file because it has a wrong number of fields in line 2.
|
Can't render this file because it has a wrong number of fields in line 47.
|
Can't render this file because it has a wrong number of fields in line 2.
|
Can't render this file because it has a wrong number of fields in line 2.
|
Can't render this file because it has a wrong number of fields in line 2.
|
Can't render this file because it has a wrong number of fields in line 2.
|
Can't render this file because it has a wrong number of fields in line 2.
|
Can't render this file because it has a wrong number of fields in line 2.
|
Can't render this file because it has a wrong number of fields in line 2.
|
@ -0,0 +1,13 @@ |
|||||
|
#!/bin/bash |
||||
|
# LinuxGSM fix_xnt.sh module |
||||
|
# Author: Daniel Gibbs |
||||
|
# Contributors: http://linuxgsm.com/contrib |
||||
|
# Website: https://linuxgsm.com |
||||
|
# Description: Install Xonotic Default Config |
||||
|
|
||||
|
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")" |
||||
|
|
||||
|
# Create the directory if it doesn't exist |
||||
|
if [ ! -d "${systemdir}/${selfname}/data" ]; then |
||||
|
mkdir -p "${systemdir}/${selfname}/data" |
||||
|
fi |
@ -0,0 +1,173 @@ |
|||||
|
#!/bin/bash |
||||
|
# LinuxGSM command_ut99.sh module |
||||
|
# Author: Daniel Gibbs |
||||
|
# Contributors: http://linuxgsm.com/contrib |
||||
|
# Website: https://linuxgsm.com |
||||
|
# Description: Handles updating of Unreal Tournament 99 servers. |
||||
|
|
||||
|
module_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")" |
||||
|
|
||||
|
fn_update_dl() { |
||||
|
# Download and extract files to serverfiles. |
||||
|
fn_fetch_file "${remotebuildurl}" "" "" "" "${tmpdir}" "${remotebuildfilename}" "nochmodx" "norun" "force" "${remotebuildhash}" |
||||
|
fn_dl_extract "${tmpdir}" "${remotebuildfilename}" "${serverfiles}" "Xonotic" |
||||
|
fn_clear_tmp |
||||
|
} |
||||
|
|
||||
|
fn_update_localbuild() { |
||||
|
# Gets local build info. |
||||
|
fn_print_dots "Checking local build: ${remotelocation}" |
||||
|
|
||||
|
# Send version command to Xonotic server. |
||||
|
tmux -L "${socketname}" send-keys -t "${sessionname}" "version\r" > /dev/null 2>&1 |
||||
|
fn_sleep_time_1 |
||||
|
|
||||
|
# Uses log file to get local build. |
||||
|
localbuild=$(grep "SVQC version: xonotic-v" "${consolelogdir}"/* 2> /dev/null | tail -1 | sed 's/.*SVQC version: \(xonotic-v[0-9.]*\).*/\1/' | tr -d '\000-\011\013-\037') |
||||
|
if [ -z "${localbuild}" ]; then |
||||
|
fn_print_error "Checking local build: ${remotelocation}: missing local build info" |
||||
|
fn_script_log_error "Missing local build info" |
||||
|
fn_script_log_error "Set localbuild to 0" |
||||
|
localbuild="0" |
||||
|
else |
||||
|
fn_print_ok "Checking local build: ${remotelocation}" |
||||
|
fn_script_log_pass "Checking local build" |
||||
|
fi |
||||
|
} |
||||
|
|
||||
|
fn_update_remotebuild() { |
||||
|
# Get remote build info. |
||||
|
apiurl="https://api.github.com/repos/xonotic/xonotic/tags" |
||||
|
remotebuildresponse=$(curl -s "${apiurl}") |
||||
|
remotebuildtag=$(echo "${remotebuildresponse}" | jq -r '.[0].name') |
||||
|
remotebuildfilename=$(echo "${remotebuildtag}" | tr -d 'v') |
||||
|
remotebuildfilename="${remotebuildfilename}.zip" |
||||
|
remotebuildurl="https://dl.xonotic.org/${remotebuildfilename}" |
||||
|
|
||||
|
remotebuildversion="${remotebuildtag}" |
||||
|
|
||||
|
if [ "${firstcommandname}" != "INSTALL" ]; then |
||||
|
fn_print_dots "Checking remote build: ${remotelocation}" |
||||
|
# Checks if remotebuildversion variable has been set. |
||||
|
if [ -z "${remotebuildversion}" ] || [ "${remotebuildversion}" == "null" ]; then |
||||
|
fn_print_fail "Checking remote build: ${remotelocation}" |
||||
|
fn_script_log_fail "Checking remote build" |
||||
|
core_exit.sh |
||||
|
else |
||||
|
fn_print_ok "Checking remote build: ${remotelocation}" |
||||
|
fn_script_log_pass "Checking remote build" |
||||
|
fi |
||||
|
else |
||||
|
# Checks if remotebuild variable has been set. |
||||
|
if [ -z "${remotebuildversion}" ] || [ "${remotebuildversion}" == "null" ]; then |
||||
|
fn_print_failure "Unable to get remote build" |
||||
|
fn_script_log_fail "Unable to get remote build" |
||||
|
core_exit.sh |
||||
|
fi |
||||
|
fi |
||||
|
} |
||||
|
|
||||
|
fn_update_compare() { |
||||
|
fn_print_dots "Checking for update: ${remotelocation}" |
||||
|
# Update has been found or force update. |
||||
|
if [ "${localbuild}" != "${remotebuildversion}" ] || [ "${forceupdate}" == "1" ]; then |
||||
|
# Create update lockfile. |
||||
|
date '+%s' > "${lockdir:?}/update.lock" |
||||
|
fn_print_ok_nl "Checking for update: ${remotelocation}" |
||||
|
echo -en "\n" |
||||
|
echo -e "Update available" |
||||
|
echo -e "* Local build: ${red}${localbuild}${default}" |
||||
|
echo -e "* Remote build: ${green}${remotebuildversion}${default}" |
||||
|
if [ -n "${branch}" ]; then |
||||
|
echo -e "* Branch: ${branch}" |
||||
|
fi |
||||
|
if [ -f "${rootdir}/.dev-debug" ]; then |
||||
|
echo -e "Remote build info" |
||||
|
echo -e "* apiurl: ${apiurl}" |
||||
|
echo -e "* remotebuildfilename: ${remotebuildfilename}" |
||||
|
echo -e "* remotebuildurl: ${remotebuildurl}" |
||||
|
echo -e "* remotebuildversion: ${remotebuildversion}" |
||||
|
fi |
||||
|
echo -en "\n" |
||||
|
fn_script_log_info "Update available" |
||||
|
fn_script_log_info "Local build: ${localbuild}" |
||||
|
fn_script_log_info "Remote build: ${remotebuildversion}" |
||||
|
if [ -n "${branch}" ]; then |
||||
|
fn_script_log_info "Branch: ${branch}" |
||||
|
fi |
||||
|
fn_script_log_info "${localbuild} > ${remotebuildversion}" |
||||
|
|
||||
|
if [ "${commandname}" == "UPDATE" ]; then |
||||
|
date +%s > "${lockdir}/last-updated.lock" |
||||
|
unset updateonstart |
||||
|
check_status.sh |
||||
|
# If server stopped. |
||||
|
if [ "${status}" == "0" ]; then |
||||
|
fn_update_dl |
||||
|
if [ "${localbuild}" == "0" ]; then |
||||
|
exitbypass=1 |
||||
|
command_start.sh |
||||
|
fn_firstcommand_reset |
||||
|
exitbypass=1 |
||||
|
fn_sleep_time_5 |
||||
|
command_stop.sh |
||||
|
fn_firstcommand_reset |
||||
|
fi |
||||
|
# If server started. |
||||
|
else |
||||
|
fn_print_restart_warning |
||||
|
exitbypass=1 |
||||
|
command_stop.sh |
||||
|
fn_firstcommand_reset |
||||
|
exitbypass=1 |
||||
|
fn_update_dl |
||||
|
exitbypass=1 |
||||
|
command_start.sh |
||||
|
fn_firstcommand_reset |
||||
|
fi |
||||
|
unset exitbypass |
||||
|
alert="update" |
||||
|
elif [ "${commandname}" == "CHECK-UPDATE" ]; then |
||||
|
alert="check-update" |
||||
|
fi |
||||
|
alert.sh |
||||
|
else |
||||
|
fn_print_ok_nl "Checking for update: ${remotelocation}" |
||||
|
echo -en "\n" |
||||
|
echo -e "No update available" |
||||
|
echo -e "* Local build: ${green}${localbuild}${default}" |
||||
|
echo -e "* Remote build: ${green}${remotebuildversion}${default}" |
||||
|
if [ -n "${branch}" ]; then |
||||
|
echo -e "* Branch: ${branch}" |
||||
|
fi |
||||
|
echo -en "\n" |
||||
|
fn_script_log_info "No update available" |
||||
|
fn_script_log_info "Local build: ${localbuild}" |
||||
|
fn_script_log_info "Remote build: ${remotebuildversion}" |
||||
|
if [ -n "${branch}" ]; then |
||||
|
fn_script_log_info "Branch: ${branch}" |
||||
|
fi |
||||
|
if [ -f "${rootdir}/.dev-debug" ]; then |
||||
|
echo -e "Remote build info" |
||||
|
echo -e "* apiurl: ${apiurl}" |
||||
|
echo -e "* remotebuildfilename: ${remotebuildfilename}" |
||||
|
echo -e "* remotebuildurl: ${remotebuildurl}" |
||||
|
echo -e "* remotebuildversion: ${remotebuildversion}" |
||||
|
fi |
||||
|
fi |
||||
|
} |
||||
|
|
||||
|
# The location where the builds are checked and downloaded. |
||||
|
remotelocation="github.com" |
||||
|
|
||||
|
if [ "${firstcommandname}" == "INSTALL" ]; then |
||||
|
fn_update_remotebuild |
||||
|
fn_update_dl |
||||
|
else |
||||
|
fn_print_dots "Checking for update" |
||||
|
fn_print_dots "Checking for update: ${remotelocation}" |
||||
|
fn_script_log_info "Checking for update: ${remotelocation}" |
||||
|
fn_update_localbuild |
||||
|
fn_update_remotebuild |
||||
|
fn_update_compare |
||||
|
fi |
Loading…
Reference in new issue